objective-c - Objective-C - 在 C 或 Objective-C 中定义

标签 objective-c c

我是初学者,所以请多多包涵。首先,所有 NS 的东西(NSArray、NSString 等)都是 Objective-C 特定的吗?

此外,我对用 C 或 Objective-C 创建东西感到困惑。你什么时候使用其中一个?

例如,我会使用以下哪些情况:

NSArray *germanCars = @[@"Mercedes-Benz", @"BMW", @"Porsche", @"Opel", @"Volkswagen", @"Audi"];

或:

NSString *germanCars[] = {@"Mercedes-Benz", @"BMW", @"Porsche", @"Opel", @"Volkswagen", @"Audi"};

谢谢

最佳答案

NS 为前缀的东西是特定于Cocoa 框架、Foundation 和AppKit 的。它们最初是为 Objective-C 设计的,但如果它们具有绑定(bind),则可以从其他语言访问它们。现在最明显的是 Swift,但也可以使用 PyObjC 等从 Python 访问它们。

一般来说,您应该更喜欢 Cocoa 集合类(即 NSArray)而不是 C 风格的类型。它们级别更高,因此提供更好的抽象和功能。您只会将 C 样式数组用于需要它的 API,这种情况相对较少。

关于objective-c - Objective-C - 在 C 或 Objective-C 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078637/

相关文章:

ios - Xcode 7,Obj-C, "Null passed to a callee that requires a non-null argument"

iphone - UISlider 在移动时修改 NSTimer 间隔崩溃应用程序

iphone - 即使在静音模式下也能在 iPhone 上播放声音

objective-c - NSDistributedNotificationCenter 通知失败?

objective-c - 使用大量值初始化数组和字典

objective-c - 在 iOS 中使用 clock() 函数获取 tics

c - 如何使用 Cython 将 C 结构数组转换为 numpy 数组

mysql - C语言新手的RDMS?

c++ - 使用 2 种不同方法时的 O(N) 差异很大

c++ - ffmpeg assert - 抛出异常而不是中止