在这段代码中
id (^block)(void) = ^(void) {
return nil;
};
我有这个错误
使用“void *(^)(void)”类型的表达式初始化“id (^__strong)(void)”的不兼容块指针类型
所以我必须明确地nil
转换为id
类型
id (^block)(void) = ^(void) {
return (id)nil;
};
让编译器高兴。买为什么nil
不是id
类型?
对于这段代码
__typeof__(nil) dummy;
dummy = [NSObject new];
Objective-C 指针类型“NSObject *”到 C 指针类型“typeof (((void *)0))”(又名“void *”)的隐式转换需要桥接转换
这就是说nil
,(void *)0
但不只是一样NULL
?我虽然nil
应该(id)0
而且Nil
应该是(Class)0
?
我正在使用 Xcode 4.6.2
编译器:Apple LLVM 4.2 版(clang-425.0.28)(基于 LLVM 3.2svn)