【发布时间】:2013-03-21 21:00:43
【问题描述】:
第一篇文章在这里。我之前正在阅读一个 Objective-C 教程,我看到他们制作了几个像这样的 NSString 实例变量:
@implementation MyViewController {
NSString *stringOne;
NSString *stringTwo;
NSString *stringThree;
NSString *stringFour;
NSString *stringFive;
}
然后像这样在 ViewDidLoad 中简单地使用它们:
- (void)viewDidLoad
{
[super viewDidLoad];
stringOne = @"Hello.";
stringTwo = @"Goodbye.";
stringThree = @"Can't think of anything else to say.";
stringFour = @"Help...";
stringFive = @"Pheww, done.";
}
他们是如何在不实例化字符串的情况下做到这一点的?为什么这行得通?当然,您必须先执行stringOne = [NSString stringFromString:@"Hello."]; 之类的操作才能正确分配和初始化对象,然后才能简单地执行stringOne= @"Hello.";。
对不起,如果这是一个愚蠢的问题,但我发现这些小东西把我扔了。
谢谢, 迈克
【问题讨论】:
-
他们通过对字符串文字的赋值来实例化它们。
-
切勿使用
stringWithFormat,除非您确实有需要格式化的字符串。 -
我花了很长时间才获得移动设备上的支持链接来编辑最后一条评论。编译器实际分配这些字符串见stackoverflow.com/questions/8032375/…
-
另外,像
NSObject *object = [[NSObject alloc] init]; object = somethingElse;这样的人做错了,所以不要效仿他们:) -
谢谢卡尔。因此,它应该是
NSObject *object = somethingElse,而不是somethingElse,因为somethingElse已经实例化,object不需要,对吧?
标签: ios objective-c