objective-c - 我能解释清楚吗?[Objective-C 入门]
问题描述
我学习 Objective-C 已经有一段时间了,今天我正在观看我开始学习的第一批视频之一。在看的时候,我问自己是否可以自己向别人解释。没有视频和我的备忘单的帮助。
如果有人读到这篇文章并看看我是否正确放置了关键字,我会非常高兴,因为我认为我真的在脑海中建立了联系(我会确保突出显示我的意思的关键字)
一个类相当于一个汽车工厂。它可以根据需要制造尽可能多的汽车。从工厂出来的汽车可以看作是实例,因为它们大体上都是一样的。蓝色汽车旁边可以有一辆红色汽车。看起来不同,它们都具有相同的属性。
在代码中,我制作了自己的示例来进行尝试:
我创建了课程Person
。每个人的一个特点Person
是他们的年龄。所以我创建了一个属性 age @property age
。我想象中的人 Tom 应该是该类的一个实例Person
。为了访问我的 tom 属性(person.tom),我首先需要在内存中分配他。所以通过分配和初始化他,我给了他内存空间和一个指针,这样编译器就可以在那里找到他。这样做,Person *tom = [[Person alloc] init];
我在课堂上声明了 tom,并且 tom 被绑定到了课堂Person
上。最后,我可以通过设置他的年龄来初始化他的值tom.age = 21;
解决方案
你几乎做对了!
但是,当您编写时:
我给了他内存空间和一个指针,这样编译器就可以在那里找到他
这不太正确,因为编译器会检查您在构建时编写的指令的语法
所以不是编译器会在内存中的给定地址找到对象tom(使用*tom
指针)
====>
它是运行时中的程序/应用程序本身,谁会找到对象tom(通过 Objective-C 运行时系统)来执行进一步的操作(向它发送消息等)。
推荐阅读
- python - 需要删除每个包含特定单词的文件
- flutter - 如何在 Flutter 中使用 FutureBuilder 动态构建富文本
- java - Spring cloud Netflix-Hystrix gradle 依赖项不允许 Spring Boot 应用程序启动
- amazon-web-services - 部署已完成,但出现错误:在中止部署期间,某些实例可能已部署新的应用程序版本
- python-3.x - 如何从熊猫的数据框中获取特定行
- docker - 即使我添加了选项“-p”,也无法在 docker 中创建目录
- postgresql - 错误:“PGDMP”第 1 行或附近的语法错误:PGDMP
- python - 如何在 avro 序列化期间在 Python 中设置具有十进制值比例和精度的 avro 'bytes' 字段值?
- reactjs - 如何使用 Framer Motion 和 Next.js 在页面之间制作不同的动画?
- angular - 如何组合可观察函数的多次执行?