子类PFObject属性上的自定义setter不起作用

时间:2015-02-02 23:48:03

标签: objective-c parse-platform pfobject

我有一个子类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中的对象键,我也不知道如何协调它。

0 个答案:

没有答案