【发布时间】:2012-05-19 09:51:05
【问题描述】:
将包含NSString* 的c 样式数组传递给objective-c 方法的最佳语法是什么?这是我目前使用的:
- (void) f:(NSString **) a {
}
- (void) g {
NSString* a[2] = {@"something", @"else"};
[self f:a];
}
【问题讨论】:
-
不要。使用 Cocoa 中的 Cocoa 集合或非 Objective-C 对象与“本机”C/C++ 进行互操作。
-
戴夫的答案是正确的;其他答案在技术上可能是正确的,但这并不能使它成为正确的解决方案。现在,当然,你认为你需要一个 C 数组可能有一些深奥的原因,但它可能是不太理想的使用模式......(有原因,但它们主要归结为“我们有一个蹩脚的库我们无法控制并且必须以某种方式使用它”)
-
由于 Objective-C 没有提供任何“正常”的方式来声明常量数组(请参阅此处的讨论:stackoverflow.com/questions/2436463/…),我认为这是一个有效的问题,并且在您需要时是正确的方法传递常量数组。
标签: objective-c arrays syntax methods parameter-passing