3

我是 Objective C 的新手。我们可以通过其中之一创建字符串对象。任何人都可以分辨出哪种方法是最好的,最简单的方法吗?

NSString *simpleString = @"This is a simple string";
NSString *anotherString = [NSString stringWithString:@"This is another simple string"];
NSString *oneMorestring = [[NSString alloc] initWithString:@"One more!"];
NSMutableString *mutableOne = [NSMutableString stringWithString:@"Mutable String"];
NSMutableString *anotherMutableOne =[[NSMutableString alloc] initWithString:@"A retained one"];
NSMutableString *thirdMutableOne =[NSMutableString stringWithString:simpleString];
4

3 回答 3

2

这真的取决于你想做什么。

对于简单地从常量创建字符串,您的第一个示例是最好的。

stringWithString几乎只是创建一个字符串的副本,所以我不怎么使用它。

您可能想签出stringWithFormatstringByAppendingString。这是我最常使用的两个。

如果启用 ARC,则无需担心保留字符串。Alloc/init 或类工厂方法在 ARC 下本质上是等效的,因此请使用您最喜欢的方法。

于 2012-11-28T08:04:56.090 回答
2

如果字符串是常量,第一种方法是创建字符串实例的最简单和最好的方法。第一种方法也更受欢迎,因为它遵循现代 Objectice-C 语言。

NSString 和 NSMutableString 之间的主要区别在于 NSString 对象是常量。我们不能改变或更新它的价值。但是 NSMutableString 具有更改或更新其值的属性。

于 2012-11-28T08:09:50.297 回答
1

没有什么是最好的方法......这取决于我们的要求。然而大多数时候我们选择手动分配和初始化版本的 NSString 或 NSMutableString。

前 3 个是常量字符串,接下来的三个是您可以操作的字符串。

第 1 行:只是一个 const 字符串。

第 2 行:您正在将一个 const 字符串复制到另一个字符串。

第 3 行:您正在手动分配和初始化它。由您或 ARC(编译器)来发布它。

与其余可变版本类似。

于 2012-11-28T08:08:27.233 回答