繁体   English   中英

Objective-C语法混乱

[英]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;是在一行上声明多个指针变量的正确方法。)

NSString *字符串;

首先,您只需声明将存在一个名为stringNSString变量,但不会对其进行初始化。

如果您希望字符串包含一个值范围(由某些条件决定)中的一个,则可以执行以下操作:

NSString *string;

if (condition) {
    string = @"This condition";
} else {
    string = @"That condition";
}

NSString * string = [NSString字符串];

第二步,您完成了上述所有操作,另外还有将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM