首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不允许将'bool‘(也称为'signed char')隐式转换为'nsdata *’

不允许将'bool‘(也称为'signed char')隐式转换为'nsdata *’
EN

Stack Overflow用户
提问于 2012-06-12 10:48:23
回答 2查看 2.9K关注 0票数 0

当执行我的项目到Obejctive-C ARC的迁移时,我得到一个错误:

代码语言:javascript
复制
implicit conversion of 'bool' (aka 'signed char') to 'nsdata *' is disallowed with arc

Xcode针对此错误所指的函数返回NOnil,尽管其返回类型为NSData

代码语言:javascript
复制
 - (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;
    }

然而,我不太确定我知道如何解决这个问题,任何想法都会受到感谢。

EN

Stack Overflow用户

发布于 2012-06-16 00:55:06

在ARC下,你只能返回一个object或nil。句号。

这是因为ARC不仅要求,而且要求你不要对指针做任何可疑的事情--指针要么指向对象,要么指向空。

ARC有问题是因为你试图在指针中填入NO (一个零值)。这违反了规则,这就是为什么你会得到一个错误。

我们不能帮你修复它,因为a)我们不知道有效的返回值是用来做什么的(为什么不?为什么不是nil?)。由于这似乎是一个代码片段,因此很难帮助您。抱歉的。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10989978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档