Avoid Properties in Categories
The OBJECTIVE-C classification is not allowed to increase the member variable (Instance variables May is not is placed in categories), we can use the runtime function objc_setAssociatedObject
and objc_getAssociatedObject
to let the classification support to save and get some data, This supports attributes.
eocperson+friendship.h@InterfaceEocperson (Friendship) @property (nonatomic, strong) nsarray *friends;@end//eocperson+ Friendship.mstatic const char* Kfriendspropertykey = "Kfriendspropertykey"; @ Implementation eocperson (friendship)-(NSArray*) Friends {return objc_getassociatedobject (self, kfriendspropertykey);} -(void) setfriends: (nsarray*) Friends {objc_setassociatedobject ( span class= "keyword" >self, kfriendspropertykey, Friends, objc_association_retain_nonatomic);} @end
Instance variables may is placed in categories