当执行我的项目到Obejctive-C ARC的迁移时,我得到一个错误:
implicit conversion of 'bool' (aka 'signed char') to 'nsdata *' is disallowed with arcXcode针对此错误所指的函数返回NO或nil,尽管其返回类型为NSData
- (NSData *)compressBytes:(Bytef *)bytes length:(NSUInteger)length error:(NSError **)err shouldFinish:(BOOL)shouldFinish
{
if (length == 0) return nil;
int status;
if (status == myVariable) {
break;
} else if (status != y_OK) {
if (err) {
*err = [[self class] deflateErrorWithCode:status];
}
return NO;
}然而,我不太确定我知道如何解决这个问题,任何想法都会受到感谢。
发布于 2012-06-16 00:55:06
在ARC下,你只能返回一个object或nil。句号。
这是因为ARC不仅要求,而且要求你不要对指针做任何可疑的事情--指针要么指向对象,要么指向空。
ARC有问题是因为你试图在指针中填入NO (一个零值)。这违反了规则,这就是为什么你会得到一个错误。
我们不能帮你修复它,因为a)我们不知道有效的返回值是用来做什么的(为什么不?为什么不是nil?)。由于这似乎是一个代码片段,因此很难帮助您。抱歉的。
https://stackoverflow.com/questions/10989978
复制相似问题