- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 objective-c 的新手,我有一些疑问。我发现您可以访问 var->myProperty 之类的类的属性,也可以访问 variable.myProperty 之类的属性,但我不知道它们之间有什么区别2.我在网上查了很多资料,确实没有找到确凿的答案。
抱歉,如果我有拼写错误,请提前致谢。
最佳答案
需要考虑三种情况:
使用someObject.something
使用self->something
使用otherObject->something
someObject.something
是点语法。就行为而言,它与 [someObject Something]
完全相同。这是一个方法调用。请注意,something
不必通过 @property
进行声明。也就是说,someArray.count
或 someString.length
在语法上都是有效的。
self->something
正在直接访问 ivar。这是一种很少使用的语法;罕见是几乎从来没有。相反,只需使用 something =
或 [something doSomething]
直接访问 ivar。不需要 ->
。
otherObject->something
直接遍历 otherObject
的实例变量。糟糕的程序员。没有 donut 。不要那样做。它破坏了封装并导致代码极其脆弱且难以维护。
关于@property
声明的注释。如果您有:
@property (atomic, strong, readonly) SomeClass *foo;
如果你让编译器自动@synthesize
所有内容,它将创建一个名为_foo
的实例变量。
您应该在 init
和 dealloc
方法中使用直接访问,但通常(但并非总是)在其他地方使用 setter/getter。 IE。在你的init
中,你会做_foo = [SomeClass someClassWithSomeMagicValue:42]
(假设ARC,所以不需要retain
)。在其他地方,您可以执行 [[self foo] castMagic];
。
关于objective-c - var->myProperty 和 var.myProperty 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19607161/
我正在使用 Objective-C 属性来为我处理保留/释放实例变量。在我的类里面,我正在做这样的事情: self.myProperty = somethingIWantToRetain [self.
今天在审查 PR 时,我在类里面看到了这个: public bool ?Selected { get; set; } //question mark in front of property na
我是 objective-c 的新手,我有一些疑问。我发现您可以访问 var->myProperty 之类的类的属性,也可以访问 variable.myProperty 之类的属性,但我不知道它们之间
我是 objective c 的新手,我有一些疑问。我已经看到您可以访问类的属性,例如 var->myProperty 和 variable.myProperty,但我不知道它们之间有什么区别2. 在
我在 App 对象中有自己的公共(public)属性。但是当我尝试通过 App.Current.myProperty 访问它时它不起作用。它只能通过 ((app)Application.Current
在 JavaScript 中使用这种构造有哪些限制。在我的代码后面,我有属性,并且在获取时它有相当复杂的逻辑。它调用其他方法等等,尽管在调试时它显示返回良好的值,但我得到的结果是空字符串。我想知道当这
在我的 Angular2 模板中,我有以下绑定(bind): {{Stringify(result)}} {{result.MyProperty}} Stringify 是一个返回输入对象的 JSON
我想做某事,但不确定如何描述它。我有这门课 public class Company { private List _persons; private Person GetPersonByNa
我正在尝试使用 Angular ReactiveForms 生成动态表单。目前,我收到错误无法找到路径为“myFormArray -> [index] -> myProperty”的控件。我已经检查过
我有这样的代码: @IBInspectable var myProperty: String? { set(newValue) { //logic for setter
我已经开始使用 Moq,到目前为止,我想我已经弄明白了如何将我的接口(interface)抽象到另一层以支持模拟 DbContext。 现在我的代码正在运行,我点击了这一行 _context.Entr
从 Angular 2.1.0 升级到 2.4.3 并将 webpack 从 2.1.0-beta.25 升级到 2.2.0-rc.4 后,如果我运行我的 webapp(构建工作正常,没有错误),我会
我可以使用 angulartics2 eventtrack 将基本事件发送到 ga,如下所示, this.angulartics2.eventTrack.next({ action: 'myActio
尝试在 Entity Framework 核心的叶级别使用 where 子句进行查询,但出现此错误: Unhandled Exception: System.ArgumentException: Th
我有一个类(class),MyClass实现 INotifyPropertyChanged并具有一些实现 PropertyChanged 的属性.当MyClass.MyProperty变化,Prope
我是一名优秀的程序员,十分优秀!