我有一个子类PFObject - Conversation
。我需要为其users
属性设置自定义设置器。
所以我将@dynamic
更改为@synthesize
:
@synthesize users = _users;
然后设置我的二传手:
-(void)setUsers:(NSArray *)users {
@synchronized (self)
{
_users = users;
self.numUsers = @(users.count);
[self setReadWriteACLsForUsers:users];
}
}
在我的控制器中,我设置users
:
self.conversation.users = users;
NSLog(@"self.conversation = %@",self.conversation);
我在users
setter上设置断点,似乎运行良好,但在日志self.conversation
中,users
属性为nil
。
修改
我将我的setter / getter改为:
-(void)setUsers:(NSArray *)users {
@synchronized (self)
{
[super setObject:users forKey:[Conversation usersKey]];
self.numUsers = @(users.count);
[self setReadWriteACLsForUsers:users];
}
}
- (NSArray *)users
{
NSArray *ret = nil;
@synchronized (self)
{
ret = [super objectForKey:[Conversation usersKey]];
}
return ret;
}
如果我在getter上设置断点,ret
中包含正确的值。
但是,在同一个conversation
实例中,在XCode中,它为我设置自定义setter / getter的两个实例变量显示nil:
http://imgur.com/6gjggN2 - 我需要10个声望才能在线发布图片
所以基本上我的合成实例变量并不对应于PFObject中的对象键,我也不知道如何协调它。