如何将简单字符串"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 文档 中阅读更多内容。
NSString *testString = @"test";
@"aString"
会生成一个NSString对象。而"aString"
则是一个C字符串,它只是一个字符数组。 - Andrew MadsenNSInteger one = 1
。 - TomasNSString
是一个对象,而NSInteger
是一种原始类型。对象总是分配在堆上,而原始类型可以分配在栈上。最重要的是,字符串有指针的原因是对象是通过引用传递的,而原始类型是通过值传递的。 - Jeff Kelley标准的字符串赋值可以这样完成:
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
char
是C语言中的本地类型,而NSString
/NSMutableString
则是Cocoa/Objective-C中用于管理字符串的类。它们与普通的C字符串(char
数组)没有太多关系。要开始学习,请查阅一些基本的Objective-C文档。 - Carl Norum@
是 Objective-C 语法的一部分。在这种情况下,它表示字符串字面量是一个 NSString,而不是常规的 C 风格字符串字面量。 - Carl Norum