我有一个类,这个类有一个委托协议。我使用这个类在主类中创建一个对象,并将主类分配为委托。主类有一个我想在创建的类中读取的属性。然后我这样做:
BOOL prop = [self.delegate myProperty];
Xcode 抱怨“delegate
可能无法响应myProperty
”
如果我要发送消息到self.delegate
read myProperty
,并且通常 Xcode 在您向未投射的对象发送消息时不会抱怨,为什么我必须这样做
BOOL prop = [(myMainClass *)self.delegate myProperty];
让它工作?
更清楚地说,这是一个无需强制转换就可以发送到对象的消息示例:
[self.myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop){
int Number = [[obj dictionaryOfNames] count];
}];
self.myArray
是来自另一个类的对象数组,它们是字典并具有此属性dictionaryOfNames
。Xcode 从来没有要求我投射这个:
int Number = [[(myOtherClass *)obj dictionaryOfNames] count];
正如我不得不为myProperty
.