“潜在的空取消引用”上出现 Clang 错误。

2024-03-24

我不断收到以下类型的代码中的 Clang 错误,但我不明白为什么它们会出错,也不知道如何解决它们以使 Clang 满意:

+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
    BOOL hasLength = ([theString length] > 0);
    if (hasLength) return theString;
    else {
        *error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
        return nil;
    }
}

抛开这个例子完全做作的本质(Clang 确实反对这一点,所以它足够说明问题),Clang 对错误分配行犹豫不决,并提出以下反对意见:

潜在的空取消引用。根据“创建和返回”中的编码标准NSError对象的参数“error”可能为空。

我喜欢原始的 Clang 报告。我已阅读引用的文件,但看不到一种方法可以实现预期的效果;我检查了一些开源 Cocoa 库,这似乎是一个常见的习惯用法。有任何想法吗?


该文档中的清单 3-5 显示了执行预期操作的方法。用你的示例代码:

+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
    BOOL hasLength = ([theString length] > 0);
    if (hasLength) return theString;
    else {
        if (error != NULL) *error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
        return nil;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“潜在的空取消引用”上出现 Clang 错误。 的相关文章

  • 使用 NSArrayController 过滤单列 NSTableView

    我展示了一张带有NSTableView 一栏 一个NSSearchField and an NSButton 添加 我想要的是将表视图的内容设置为字符串列表 该字符串列表位于NSArray called list 应根据搜索字段的内容过滤此
  • 如何显示文件解压进度?

    我正在尝试找出一种方法来显示当前进度以及解压缩并将 zip 文件的内容写入磁盘的剩余时间 我目前正在使用此处找到的 ZipArchiver 类http code google com p ziparchive http code googl
  • TextKit:Xcode 中的编辑器占位符功能是如何实现的?

    我深入研究了 TextKit 想知道编辑器占位符是如何在 Xcode 代码编辑器中实现的 您也可以自己尝试一下并输入以下内容 lt Hello gt 它会自动变成占位符 Xcode 编辑器是使用 TextKit 构建的 经过一番研究 我想出
  • 我可以使用 CALayer 来加速视图渲染吗?

    我正在制作一个自定义 NSView 对象 其中一些内容经常更改 而另一些内容则很少更改 事实证明 变化较少的部分需要花费最多的时间来绘制 我想做的是将这两个部分渲染在不同的层中 以便我可以分别更新其中一个或另一个 从而使我的用户免受缓慢的用
  • Cocoa 脚本:返回“null”与“缺失值”

    看来 AppleScript 知道这个特殊值null 如何从基于 Cocoa 脚本的应用程序中为可编写脚本的属性返回这样的值 如果我回来nil NULL or NSNull对于来自我的基于 Cocoa 脚本的应用程序的可编写脚本的属性 ge
  • 如何将 NSArray 元素连接到 NSString 中?

    给定一个 NSString 的 NSArray 是否有一种快速方法将它们连接成一个 NSString 带有分隔符 NSArray stuff NSString combinedStuff stuff componentsJoinedBySt
  • 使用 AppleScript 设置窗口位置

    我正在尝试使用 AppleScript 设置 Messages app 聊天窗口的位置 tell application System Events set position of window 1 of application Messa
  • 在系统范围内向 Mac 窗口标题栏添加按钮

    我希望能够添加一个按钮标题栏 https developer apple com design human interface guidelines macos windows and views window anatomy of Mac
  • 如何在 NSImage 周围绘制彩色边框?

    我做了一些研究 但我得到的所有答案都是针对 iOS 的 如何在 OSX 应用程序中在 NSImage 周围绘制彩色边框 我尝试使用 NSImage 的 imageView 属性来设置它的边框宽度和颜色 但它似乎不起作用 非常感谢任何形式的帮
  • 如何在 Cocoa Touch 中验证网站证书?

    我目前使用 NSURLConnection 打开到 Web 服务器的 https 连接 一切正常 我能够检索我想要的页面内容 该证书是由 VeriSign 颁发的 我假设 NSURLConnection 做了一些工作来在某种程度上验证证书的
  • 您希望 2 年前就知道哪些 Cocoa/Core Foundation 辅助函数?

    我刚刚在 NSGeometry h 中发现了 NSRect 辅助函数 即 NSMidX NSMaxX 等 这些将使一些重复编码变得更加容易 我了解 NSMakeRect NSMouseInRect NSOffsetRect 和许多其他函数
  • 将 NSString 中的“”字符替换为“\”(以创建 Unix 路径)

    使用以下内容不起作用 NSString stringByReplacingOccurrencesOfString NSString target withString NSString replacement 我所说的 不起作用 是指不做任
  • Objective-C / Cocoa Touch 中的 HTML 字符解码

    首先 我发现了这个 https stackoverflow com questions 659602 objective c html escape unescapeObjective C HTML 转义 unescape https st
  • 检测可可上的鼠标右键单击

    我正在尝试在我的原型中管理鼠标事件精灵套件 game 我从问题中使用了以下方法SO q https stackoverflow com questions 17473176 how to detect right and left clic
  • 为什么没有 styleMask:NSTitledWindowMask 的 NSWindow 不能成为 keyWindow?

    问题 我有一个窗口 mainWindow 和另一个窗口childWindow添加到mainWindow childWindow 是一种WindowExt班级 我为 catch 方法调用定义了这个类 NSWindow becomeKeyWin
  • 似乎无法在 NSMenuItem 上 setEnabled:NO

    我已经子类化了NSMenu并连接了一堆NSMenuItem通过界面生成器 我已经通过调试器进行了测试 看看它们确实得到了初始化 菜单设置为不自动启用项目 仍然当我将任何 NSMenuItem 设置为 myMenuItem setEnable
  • cocoa——让嵌套的 NSView 和 CALayers 按比例调整大小

    我的 NSWindow 的 contentView 是 NSView 子类 它还有一些其他 NSView 子类作为子视图 子视图是基于图层的 而这些图层又包含子图层 一些子层具有另外的子子层 我希望在调整窗口大小时 整个内容也按比例调整大小
  • 使用 NSMutableDictionary 与 NSMutableArray 造成的性能损失>

    我正在考虑使用 NSMutableDictionary 代替我当前的 NSMutableArray 这主要是出于 KVC KVO 的原因 该集合将在我的绘图方法的内循环中经历严重的变化 如果我继续进行此替换 性能是否会受到重大影响 干杯 道
  • 复制文件而不冻结 GUI

    好的 基本上这就是我想做的 我的文件列表中有一个文件列表应用程序包 例如在文件夹中myData 请注意 子文件夹 等中有很多文件 文件夹 我想要复制整个文件树到用户磁盘上的给定位置 我需要有访问每个单独的文件被复制 因为其中一些在复制之前需
  • 用强/弱自我打破保留周期

    我读过关于强 弱的帖子self打破保留周期 但我仍然对它们如何工作感到困惑 我理解使用 weak typeof self weakSelf self创建对自我的弱引用 但我对强引用感到困惑 据我了解 强引用是指对self这样它就不会在块结束

随机推荐