gpt4 book ai didi

objective-c - 根据条件设置 NSString

转载 作者:行者123 更新时间:2023-12-01 13:31:58 26 4
gpt4 key购买 nike

我正在努力寻找使用 alloc/init 创建 NSString 对象,然后根据条件设置其内容的最佳方法。

我试试这个:

        if (amount==@"current") { 
NSString * suffix=[[NSString alloc] initWithFormat:@"contents1"];
} else {
NSString * suffix=[[NSString alloc] initWithFormat:@"contents2"];
}

但是,如果我尝试在任何地方使用“后缀”,编译器不喜欢它;声称未声明。

但是,由于我想要一个简单的不可变字符串,因此我无法在“if”之前设置它,然后在“if”期间分配它,所以我不确定如何处理这个问题?

最佳答案

您的原始代码失败,因为您在 if/else 的分支内声明字符串变量。该声明是大括号的本地声明,在大括号之外不存在。如果将声明移到 if 语句之外,则可以使用 if 的分支分配给此(共享)变量:

BOOL isCurrent = [amount isEqualToString:@"current"];
if (isCurrent) {
suffix = @"contents1";
} else {
suffix = @"contents2";
}

条件赋值是使用三元运算符?:的好地方。 P? X : Yif (P) X 类似;否则Y;。与 if 不同,if 是一个依赖赋值和其他副作用来影响其环境的语句,?: 是一个返回所选分支值的表达式。您可以使用 ?: 来做您想做的事情,如下所示:

BOOL isCurrent = [amount isEqualToString:@"current"];
NSString *suffix = isCurrent? @"contents1" : @"contents2";

关于objective-c - 根据条件设置 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com