【发布时间】:2015-09-20 17:28:47
【问题描述】:
我正在尝试实现一个数据源,该数据源可用于为 tableview 自定义几个不同类别的单元格,但是我在传递给构造函数的块中遇到了泛型类型的问题。
这里是数据源头文件的实现:
@interface ABParseDatasource<__covariant ObjectType: UITableViewCell *> : NSObject <UITableViewDataSource>
- (instancetype)initWithCellIdentifier:(NSString *)identifier parseQuery:(PFQuery *)query tableView:(UITableView *)tableView customizeBlock:(void (^)(ObjectType))customBlock;
@end
这是我试图在构造函数中初始化块的地方:
self.parseDatasource = [[ABParseDatasource alloc] initWithCellIdentifier:identifier parseQuery:[ABOrder query] tableView:self.tableView customizeBlock:^(ABOrderItemTableViewCell *cell) {
}];
属性声明:
@property (nonatomic) ABParseDatasource<ABOrderItemTableViewCell *> *parseDatasource;
但我在实例化数据源时遇到编译器错误:
有什么想法吗? (是的,ABOrderItemTableViewCell 确实继承自 UITableViewCell)
【问题讨论】:
-
你如何在
@implementation中声明init...? -
@Sulthan - (instancetype)initWithCellIdentifier:(NSString *)identifier parseQuery:(PFQuery *)query tableView:(UITableView *)tableView customizeBlock:(void (^)(UITableViewCell *, PFObject *)) customBlock { 和 imgur imgur.com/ibKI2K9.png
标签: ios objective-c generics objective-c-blocks