使用@weakify时,程序中出现意外错误'@'。我是否缺少一些.h文件?
我已经导入了ReactiveCocoa.h。有什么我应该做的吗?

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        _isSeperateFill = YES;
        _isBorderStroke = NO;
        _isSeperatedStroke = YES;

        _contentWidth = 0;

        @weakify(self);
        [RACObserve(self, dataVO) subscribeNext:^(TableDataVO* dataVO){
            if( dataVO ){
                NSString* indexKey = [[dataVO.tableDataDictionary allKeys] objectAtIndex:0];

                _keys = [dataVO.tableDataDictionary allKeys];
                @strongify(self);
                _rows = [[self.dataVO.tableDataDictionary objectForKey:indexKey] count];
                @strongify(self);
                [self.styleVO setTableHeaderLineHorizontalMargin:self.styleVO.tableWidth / [_keys count]];
            }
        }];

        @weakify(self);
        [RACObserve(self, styleVO) subscribeNext:^(TableStyleVO* styleVO){
            if( styleVO ){
                styleVO.tableHeaderLineHorizontalMargin = styleVO.tableWidth / [_keys count] / 2;
            }
        }];

    }
    return self;
}

最佳答案

@weakify@strongify和 friend 是libextobjc的一部分,而不是ReactiveCocoa

尝试添加以下行(根据@chakming的评论):
#import "ReactiveCocoa/RACEXTScope.h"
或对于2.3.1之前的ReactiveCocoa(我的原始答案),请使用:
#import <ReactiveCocoa/EXTScope.h>

关于ios - 使用@weakify时在程序中获取错误意外的 '@',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25307564/

10-13 03:52