如果我创建属性,例如:
@property NSString *selectedSubProductId;并创建setter和getter:
- (NSString *)selectedSubProductId {}
- (void)setSelectedSubProductId:(NSString *)value_ {}XCode说"Deault property attribute 'assign' not appropriate for non-gc object".在这种情况下,属性有什么意义吗?我将它们设为copy或assign有关系吗?或者它们只是提示@synthesize创建所需的方法吗?如果是,我应该如何禁用警告?
发布于 2012-09-17 17:20:27
如果是对象,则应使用保留/复制属性修改器。
例如:
@property (nonatomic, retain) NSString *selectedSubProductId;如果缺少修改器,则默认情况下启用assign修改器。但它只对标量有效(int,float...)或者struct。
您可以在Apple Documentation中获得更多详细信息
发布于 2012-09-17 17:21:56
该警告表明您正在使用默认属性属性(assign),因为您忘记了说明您希望如何保存对象。
如果要“删除”警告,请使用保留/复制属性:@property (copy) NSString *selectedSubProductId;
但是,在字符串中,您应该使用copy。如需更多信息,请访问visit this question on stackoverflow.。
https://stackoverflow.com/questions/12456221
复制相似问题