“不兼容的指针...”关于将委托分配给自己的警告
我有一个 UITableView 的自定义子类,其中定义的协议如下:
#import <UIKit/UIKit.h>
@protocol CustomDelegate <NSObject>
@optional
-(NSInteger)numberOfRows;
@end
@interface CustomTV : UITableView <UITableViewDelegate, UITableViewDataSource>{
id<CustomDelegate> *del;
}
@property (nonatomic, assign) id<CustomDelegate> *del;
@end
现在在其他一些类中,我实例化此 CustomTV 并将委托设置为 self:
CustomTV *tbl = [[CustomTV alloc] initWithFrame:CGRectMake(0, 0, 200, 400) style:UITableViewStylePlain];
tbl.del = self;
为什么我会收到“不兼容的指针...”警告 <代码>tbl.del = self?
我确实符合标头中的 CustomDelegate 协议。
I have a custom subclass of UITableView with a protocol defined in it as below:
#import <UIKit/UIKit.h>
@protocol CustomDelegate <NSObject>
@optional
-(NSInteger)numberOfRows;
@end
@interface CustomTV : UITableView <UITableViewDelegate, UITableViewDataSource>{
id<CustomDelegate> *del;
}
@property (nonatomic, assign) id<CustomDelegate> *del;
@end
Now in some other class, I instantiate this CustomTV and set the delegate to self:
CustomTV *tbl = [[CustomTV alloc] initWithFrame:CGRectMake(0, 0, 200, 400) style:UITableViewStylePlain];
tbl.del = self;
Why do I get an "Incompatible pointer..." warning on the line tbl.del = self
?
I did conform to the CustomDelegate protocol in the header.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您将委托声明为指向对象的指针。类型 id 已被声明为指向对象的指针,因此请删除星号。
You are declaring the delegate as a pointer to a pointer to an object. The type
id
is already declared as a pointer to an object so remove the star.