使用自动引用计数(ARC)时,默认情况下,每个指针赋值都会执行保留操作。在这种情况下,在非原子情况下,我为什么还需要声明属性呢?
这两者有何不同?
//Property
@interface I1 : NSObject
@property (nonatomic, strong) NSString* str;
@end
I1 *obj1 = ...;
obj1.str = [[NSString alloc] init...];
//Only member variable
@interface I2 : NSObject {
@public
NSString* str;
}
@end
I2 *obj2 = ...;
obj2->str = [[NSString alloc] init...];