我有 2 个 UIViewControllers(A,B)。A 被设置为 B 的代表,然后 B 被呈现。协议设置在 B 的 header 中:
@protocol BDelegate <NSObject>
- (IBAction)finishOrder:(id)sender;
@end
声明了委托属性:
@property (nonatomic, assign) id<BDelegate> delegate;
A 设置 B.delegate = self; 然后按一个按钮 B 调用:
if (self.delegate) {
[self.delegate finishOrder:nil];
}
但是,在第一次运行时 lldb 给了我:
-[UITextInteractionAssistant finishOrder:]: unrecognized selector sent to instance
第二次运行:
-[NSInvocation delegate]: unrecognized selector sent to instance
第三次运行:
-[__NSCFDictionary delegate]: unrecognized selector sent to instance
第四次运行:
-[UITextTapRecognizer finishOrder:]: unrecognized selector sent to instance
所以...没有代码更改,但是 self 从 A 更改为 NSInvocation 和 __NSCFDictionary 并且 B 的委托(A 的自己)更改为 UITextInteractionAssistant 和 UITextTapRecognizer ...从未见过类似的东西。有任何想法吗?谢谢!