内部块没有更新属性

时间:2014-04-28 02:09:33

标签: objective-c properties objective-c-blocks firebase

我从一个类中获取这个snippit来获取一些东西:

interface:
@property (nonatomic, strong) Firebase *firebase;
@property (nonatomic, strong) NSMutableDictionary *offlineCopy


implementation:
//...connection code...\\

- (void)offlineCopyForEvent:(NSString *)event {
    [self.firebase observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
        if ([snapshot.value isKindOfClass:[NSDictionary class]]) {
            NSDictionary *copy = snapshot.value;

            self.offlineCopy = [copy mutableCopy];

            NSLog(@"%@", copy);
        }

    }];
}

正确返回数据(日志显示结果)。但是当我尝试使用上面的代码设置后访问该属性时,它返回nil。我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试:

- (void)offlineCopyForEvent:(NSString *)event {
    __weak YourViewController weakSelf = self;
    self.offlineCopy = [[NSMutableDictionary alloc]init];
    [self.firebase observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
        if ([snapshot.value isKindOfClass:[NSDictionary class]]) {
            NSDictionary *copy = snapshot.value;

            weakSelf.offlineCopy = [copy mutableCopy];

            NSLog(@"%@", copy);
        }

     }];
}