[英]Is defining a property & synthesize for a variable in a singleton class allowed?
[英]Instance variable with property & synthesize and one without them - ARC
您可以像这样声明一个变量。
情况1:
@interface MyClass : NSObject
{
NSString *str;
}
@end
另外,如果要设置其属性,可以执行
情况2:
@interface MyClass : NSObject
{
NSString *str;
}
@property (nonatomic, strong) NSString *str;
@end
在.m中,
@synthesize str;
我对案例1和案例2之间区别的理解是,当另一个类实例化该类时,可以从另一个类访问案例2中的合成变量和属性变量。
案例1和案例2有何其他区别? 说这些变量仅在其.m文件中使用时。 您正在设置'str'属性的事实可能会有所不同,但是如何呢? 如果您未设置属性,它们将如何与ARC一起发布?
在这种情况下,由于设置方式的不同,它们之间的差异相当混乱。
它还正在使用现在的旧做法。
建议的执行此操作的新方法(由Apple建议)是执行此操作。
MyClass.h
@interface MyClass : NSObject
@property (nonatomic, strong) NSString *str;
@end
MyClass.m
#import "MyClass.h"
@implementation MyClass
@end
您不再需要@synthesize,因为Xcode(从4.5开始)将自动为您生成这些。
这样做可以设置叫物业str
叫伊娃_str
。
现在,您不再需要担心定义多个ivars和属性等。只需使用属性即可。
属性str的setter方法示例如下所示:
- (void)setStr:(NSString*)str
{
_str = str;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.