声明和宣传的最佳方式在Objective C中初始化字符串变量

时间:2012-11-28 07:59:06

标签: objective-c

我是Objective C的新手。我们可以通过其中一个来创建String Object。任何人都可以区别对待这是最好,最简单的方法吗?

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];

3 个答案:

答案 0 :(得分:2)

这实际上取决于你想做什么。

简单地从常量创建一个字符串,你的第一个例子是最好的。

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

您可能需要查看stringWithFormatstringByAppendingString。这是我经常使用的两个。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

没有什么是最好的方式......这符合我们的要求。但是大多数时候我们选择手动分配和启动的NSString或NSMutableString版本。

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

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

第2行:您正在使用anotherString复制const字符串。

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

与rest Mutable版本类似。