2
我不太瞭解彙編程序,可以像整個項目的程序集一樣理解如此複雜的代碼,但是我注意到,如果我將strong
屬性放在屬性中,_objc_storeStrong
調用顯示在我的調試程序的附近, ;ARC編譯器根據屬性屬性自動確定是保留還是分配重寫的類?
@interface ClassName : NSObject
@property (strong, nonatomic) NSSet *mySet;
@end
@implementation ClassName
@synthesize mySet;
-(void)setMySet:(NSSet *)newMySet
{
mySet = newMySet;
//do stuff
}
@end
那麼,我對嗎? ARC編譯器是否根據屬性自動確定是否保留或分配重寫的類?
謝謝。所以編譯器根據隱含的iVar來確定它?所以我設置了屬性,它意味着ivar,然後編譯器決定如何在其中存儲值?這對我來說並不好,但可能我會更好地理解它。 – DanSkeel
是的,這是正確的。 'strong'意味着'__strong',這與MRC中的'retain'相同。 (默認值是'assign'或'unsafe_unretained',兩者都暗示'__unsafe_unretained',這與MRC中的'assign'相同。 –