我是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];
答案 0 :(得分:2)
这实际上取决于你想做什么。
简单地从常量创建一个字符串,你的第一个例子是最好的。
stringWithString
几乎只是创建一个字符串的副本,所以我不会使用它。
您可能需要查看stringWithFormat
和stringByAppendingString
。这是我经常使用的两个。
如果启用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版本类似。