Предупреждение «Несовместимый указатель ...» при назначении делегата себе - PullRequest
1 голос
/ 03 октября 2011

У меня есть собственный подкласс 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 в заголовке.

1 Ответ

3 голосов
/ 03 октября 2011

Вы объявляете делегата как указатель на указатель на объект. Тип id уже объявлен как указатель на объект, поэтому удалите звезду.

@interface CustomTV : UITableView <UITableViewDelegate, UITableViewDataSource>{  
    id<CustomDelegate> del;
}
@property (nonatomic, assign)    id<CustomDelegate> del;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...