【发布时间】:2011-01-11 19:05:00
【问题描述】:
我正在 Objective-C 中编写一个方法,该方法基于 NSMutableArray 输入返回一个字符串。我不打算让调用者修改字符串,但也不在乎。该方法的当前签名为:
- (NSMutableString *) generateString:(NSMutableArray *)myArray
该项目目前是一个命令行基础工具,用于学习其中的技巧,但这最终将在 iPhone 应用程序中结束。
我的问题是:
- 返回 NSString 会更谨慎吗?
2) 当返回 NSMutableString 时,我应该使用 autorelease 吗?如果您建议我返回一个 NSString,那么如何修改返回它?
3) 如果我还想返回一个错误对象来识别是否发生了错误,也许是一个枚举和一个字符串,在这种情况下所有权如何工作?该方法不称为 alloc、new 或 copy,所以调用者怎么知道?除了上述方法中的字符串,我如何返回分配的错误对象?
谢谢!
【问题讨论】:
-
只是一个注释,不知道它是否与您相关,但您可以从
NSArray获得NSString,如下所示:NSString *myString = [myArray componentsJoinedByString:@" "]; -
谢谢菲利普,我不知道。这是一个巧妙的想法,但在这种情况下对我不起作用,因为有必要的逻辑会影响最终字符串的生成方式。
标签: objective-c cocoa memory-management nsstring nsmutablestring