我想修复我的应用程序代码中的警告。我有一个实现ttmodel协议的AddressBookModel.h
您可以在这个问题的答案中找到AdressBookModel的接口和实现。这正是我实现它的方式How to use Three20 TTMessageController?
但是为了

[_delegates perform:@selector(modelDidStartLoad:) withObject:self];

还有一些类似的选择器
Method -perform:withObject not found (return type defaults to id)

因为代理是一个数组
- (NSMutableArray*)delegates {
    if (!_delegates) {
        _delegates = TTCreateNonRetainingArray();
    }
    return _delegates;
}

有些人建议使用makeObjectsPerformSelector,但这给了我一个unrecognized selector sent to instance异常。
这是ttmodel的源代码:http://api.three20.info/protocol_t_t_model-p.php
为什么执行:缺少对象?performSelector:withObject是一个替代方案吗(我的应用程序在使用它时崩溃)?

最佳答案

性能:生成此警告的方法在框架中的h。您需要确保编译器正确地导入/引用此头,也就是说,您需要查看导入此特定头或检查您的three20集成配置。
您不需要将此方法更改为MaskObjistPrimultS选择器:因为这只是一个导入问题(您的代码运行良好,但只生成编译警告)。

07-24 09:19