Objective C 块泛型
Objective C Block Generics
我正在尝试实现一个数据源,该数据源可用于为表格视图自定义几个不同的 类 单元格,但我在传递的块中遇到通用类型问题给构造函数。
这里是数据源头文件的实现:
@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
)
创建 class 时必须指定泛型类型:
[[ABParseDatasource<ABOrderItemTableViewCell *> alloc] initWithCellIdentifier...
我正在尝试实现一个数据源,该数据源可用于为表格视图自定义几个不同的 类 单元格,但我在传递的块中遇到通用类型问题给构造函数。
这里是数据源头文件的实现:
@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
)
创建 class 时必须指定泛型类型:
[[ABParseDatasource<ABOrderItemTableViewCell *> alloc] initWithCellIdentifier...