我有一个子类 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
,它似乎运行良好,但在日志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 中的对象键不对应,我不知道如何协调这一点。