[英]Objective-c syntax confusion
谁能告诉我之间的区别
NSString* string;
和
NSString* string = [NSString string];
就像在C中一样
NSString *string;
声明变量(指针) string
但不提供任何值。 这意味着您必须先初始化变量才能使用它,例如通过执行string = @"foo";
。
注意:
nil
。 if
有条件等),则编译器将抱怨。 为了避免这种情况,您可以将其设置为空字符串或以nil
开头。 线
NSString *string = [NSString string];
使用NSString
类的+string
方法创建一个空字符串。 您也可以使用@""
。
(还要注意:我建议使用NSString *string
而不是NSString* string
因为前者隐藏了语法特质: NSString *string1, *string2;
是在一行上声明多个指针变量的正确方法。)
首先,您只需声明将存在一个名为string
的NSString
变量,但不会对其进行初始化。
如果您希望字符串包含一个值范围(由某些条件决定)中的一个,则可以执行以下操作:
NSString *string;
if (condition) {
string = @"This condition";
} else {
string = @"That condition";
}
第二步,您完成了上述所有操作,另外还有将string
变量初始化为空字符串的附加步骤。
当您希望字符串包含特定的单个值时,可以这样做:
NSString *string = @"There are no conditions"
NSString *string;
创建一个指针,但不创建字符串对象(实例)。 根据它在哪里是编译器选项,它可能被初始化为nil或不初始化为nil。 换句话说,它为指向NSString
bot no NSString
对象的指针创建了一个位置(内存存储)。
NSString *string = [NSString string];
创建一个空字符串对象(实例)和一个指向它的指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.