gpt4 book ai didi

iphone - 设置 UIImagePickerController 委托(delegate)会引发有关 UINavigationControllerDelegate 的警告

转载 作者:行者123 更新时间:2023-12-03 18:18:34 25 4
gpt4 key购买 nike

代码:

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self.navigationController presentModalViewController:picker animated:YES];
[picker release];

警告,显示在 picker.delegate = self; 行:

Class 'CardEditor' does not implement the 'UINavigationControllerDelegate' protocol

为什么 UIImagePickerController 关心我的类是否实现了 UINavigationControllerDelegate 协议(protocol)?

最佳答案

UIImagePickerController 继承自 UINavigationController。 delegate 属性是 UINavigationController 的一部分,因此它要求其委托(delegate)符合 UINavigationControllerDelegate 协议(protocol)。

delegate property声明如下:

@property(nonatomic, assign) id<UINavigationControllerDelegate> delegate;

这告诉编译器验证您的 Controller 是否会实现 UINavigationConrollerDelegate 协议(protocol)。检查已到位,以便在您的 Controller 类未正确实现 UINavigationController 可能发送给其委托(delegate)的所有方法时生成编译时警告。

如果您正在寻找解决方案,您可以(在 Controller 类接口(interface)中)指出您的 Controller 符合该协议(protocol):

@interface MyController : NSObject <UINavigationControllerDelegate>
...
@end

完成此操作后,编译器将警告您任何尚未实现的必需委托(delegate)方法。这是一件好事,因为它将防止您发布可能意外引发“找不到方法”运行时错误的代码。

关于iphone - 设置 UIImagePickerController 委托(delegate)会引发有关 UINavigationControllerDelegate 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com