如何在Objective-C中声明字符串?

如何在Objective-C中声明字符串?,objective-c,cocoa,string,nsstring,Objective C,Cocoa,String,Nsstring,如何将简单字符串“test”声明为变量?C字符串与C中的字符串类似 char myCString[] = "test"; NSString使用@字符: NSString *myNSString = @"test"; 如果需要管理NSString的内存: NSString *myNSString = [NSString stringWithFormat:@"test"]; NSString *myRetainedNSString = [[NSString alloc] initWithForm

如何将简单字符串“test”声明为变量?

C字符串与C中的字符串类似

char myCString[] = "test";
NSString使用
@
字符:

NSString *myNSString = @"test";
如果需要管理NSString的内存:

NSString *myNSString = [NSString stringWithFormat:@"test"];
NSString *myRetainedNSString = [[NSString alloc] initWithFormat:@"test"];
或者,如果需要可编辑字符串:

NSMutableString *myMutableString = [NSMutableString stringWithFormat:@"test"];

您可以从中阅读更多内容。

标准字符串分配可以这样完成:

NSString *myTestString = @"abc123";
除了基本的分配之外,在使用NSString类时,您还可以获得许多标准Char[]数组无法获得的方法。这就是为什么目标规划更好

例如,用html网页的内容填充字符串,只需一行代码**

创建和初始化字符串

+ string
– init
– initWithBytes:length:encoding:
– initWithBytesNoCopy:length:encoding:freeWhenDone:
– initWithCharacters:length:
– initWithCharactersNoCopy:length:freeWhenDone:
– initWithString:
– initWithCString:encoding:
– initWithUTF8String:
– initWithFormat:
– initWithFormat:arguments:
– initWithFormat:locale:
– initWithFormat:locale:arguments:
– initWithData:encoding:
+ stringWithFormat:
+ localizedStringWithFormat:
+ stringWithCharacters:length:
+ stringWithString:
+ stringWithCString:encoding:
+ stringWithUTF8String:
从文件创建和初始化字符串

+ stringWithContentsOfFile:encoding:error:
– initWithContentsOfFile:encoding:error:
+ stringWithContentsOfFile:usedEncoding:error:
– initWithContentsOfFile:usedEncoding:error:
从URL创建和初始化字符串

+ stringWithContentsOfURL:encoding:error:
– initWithContentsOfURL:encoding:error:
+ stringWithContentsOfURL:usedEncoding:error:
– initWithContentsOfURL:usedEncoding:error:
如果您需要一个可以编辑其缓冲区的字符串,请查看:

NSMutableString

NSString和char之间有什么不同?
char
是一种原生C类型,
NSString
/
NSMutableString
是Cocoa/Objective-C中用于管理字符串的类。它们与普通C字符串(字符数组)根本没有太大关系。您应该查阅一些基本的“how-to”Objective-C文档来开始。@powtac,
@
是Objective-C语法的一部分。在本例中,它表示字符串文字是NSString,而不是常规的C样式的字符串文字。这就是我要寻找的答案。虽然卡尔·诺勒姆的回答非常详细,但答案在卡尔·诺勒姆的回答中解释得很清楚<代码>@“aString”生成NSString对象<代码>“aString”是一个C字符串,它只是一个字符数组。为什么为了使用字符串变量,我们必须使用指针,而NSInteger可以在没有指针的情况下声明?e、 g
NSInteger one=1
Objective-C中的
NSString
是一个对象,而
NSInteger
是一个基本类型。对象总是在堆上分配,而原语可以在堆栈上分配。最重要的是,字符串有指针的原因是对象是通过引用传递的,而原语是通过值传递的。
NSMutableString