我试图理解一些人用来区分实例变量和属性的策略.常见的模式如下:
@interface MyClass : NSObject {
NSString *_myVar;
}
@property (nonatomic, retain) NSString *myVar;
@end
@implementation MyClass
@synthesize myVar = _myVar;
Run Code Online (Sandbox Code Playgroud)
现在,我认为这个策略背后的整个前提是可以很容易地区分出伊达和财产之间的区别.所以,如果我想使用由合成属性继承的内存管理,我会使用如下内容:
myVar = @"Foo";
Run Code Online (Sandbox Code Playgroud)
另一种方式是通过自我引用它.[ivar/property here].
使用@synthesize myVar = _myVar策略的问题是,我认为编写代码如:
myVar = some_other_object; // doesn't work.
Run Code Online (Sandbox Code Playgroud)
编译器抱怨myVar未声明.为什么会这样?
谢谢.
可能重复:
如果您在Objective-C中仅使用属性,是否有任何理由声明ivars?
ObjectiveC ivars或@property
我是iPhone编程的新手(以及编程场景).我试图在各个地方研究属性,并发现它们基本上是为其他类创建getter和setter方法以获取对这些对象的访问权限的快捷方式.
现在,我已经看到程序员在@interface之后的花括号中定义对象:UIViewController以及之后的属性,当所有访问都发生在该类的.m文件中时.
现在,那段多余的(?)代码,是否有必要?这是标准吗?期待一些可理解的意见.
先感谢您.