Objective-C 风格

标签 objective-c cocoa

所以我有以下代码,我想知道 Objective-C 中哪种“风格”被认为更好。

选项 1:

id temp = [dictionary objectForKey: @"aBooleanValue"];
BOOL var = (temp) ? [ temp intValue ] : NO;

选项 2:

BOOL var = ([dictionary objectForKey: @"aBooleanValue"]) ? [[dictionary objectForKey: @"aBooleanValue"] intValue ] : NO;

我相信性能相对相似,因为 HashMap 具有恒定的查找时间。如果临时变量不再使用,是否值得使用它?

最佳答案

这两个选项都是有效的,但都不一定“更好”;这只是一个偏好问题。

但是,据我所知,有一种方法可以将代码缩短到根本不需要变量或三元运算符。
如果从 [dictionary objectForKey:@"aBooleanValue"] 返回的对象是 NSNumberNSValue (我假设它是),您只需调用 BOOL var = [[dictionary objectForKey:@"aBooleanValue"] boolValue] 即可完全避免此问题。

关于Objective-C 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195938/

相关文章:

macos - 带有文本气泡的 NSTextView

cocoa - 迁移复杂的核心数据模型

macos - NS窗口 : get the current Space/Desktop of a specific window

objective-c - 如何在 objective-c 中使用 sqlite3_exec 将 UIImage 作为 blob 插入

iphone - 如何在 iOS 4.0+ 中以字节为单位获取 UIImage 的大小?

ios - 等同于 CGRectIntersectsRect

c++ - 如何在 C++ 应用程序中处理指向 Objective-C 对象的指针

ios - 如何使用 Core graphics 更改 UITableViewCell 的背景颜色

objective-c - 是否可以知道鼠标附近显示的是什么文本?

macos - 模拟系统范围热键的按键