我创建了一个协议并将其分配给一个委托对象
@protocol AppBrainDelegate <NSObject> @optional - (void)didLocateUser; - (void)didFinishLoadingDataWithData:(NSDictionary *)fetchedData; @end @interface Brain : NSObject @property (strong,nonatomic) id <AppBrainDelegate> delegate;
我认为这个@optional在协议声明中的含义意味着控制器不必听代理方法,如果他们不想.
如果不在控制器中实现第一个委托方法,那么这是崩溃日志.如果我这样做,我不会崩溃.似乎我不明白将委托方法声明为可选的概念.你可以向我解释我的错误在哪里吗?
* Terminating app due to uncaught exception ‘NSInvalidArgumentException’,reason: ‘-[EventViewController didLocateUser]: unrecognized selector sent to instance 0x1fb300’