Objective c 目标C:变量不会被使用(如果)
我使用了一个非常简单的if子句,它只检查一个名称,并且应该返回一个变量,但是它不能被识别。 createUser变量被标记为未使用Objective c 目标C:变量不会被使用(如果),objective-c,variables,if-statement,Objective C,Variables,If Statement,我使用了一个非常简单的if子句,它只检查一个名称,并且应该返回一个变量,但是它不能被识别。 createUser变量被标记为未使用 NSString *salesPersonName = [[[SevdeskApiManager sharedManager] currentSevUser] firstName]; if ([salesPersonName isEqual: @"XXX "]) { NSString *createUser = @"1"; } els
NSString *salesPersonName = [[[SevdeskApiManager sharedManager] currentSevUser] firstName];
if ([salesPersonName isEqual: @"XXX "]) {
NSString *createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
NSString *createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
NSString *createUser = @"111";
} else {
NSString *createUser = @"1111";
}
// Hier die keyvalues eintragen
NSString *bodyString = [NSString stringWithFormat:@"name=nachtelefonieren&assigned[id]%@=&assigned[objectName]=SevUser&category[id]=31&category[objectName]=Category& createUser[id]=%@&createUser[objectName]=SevUser¬iceCreator=0&deadline=%@&status=100&object[id]=28243&object[objectName]=SevClient",assignedUser,createUser,deadline];
只要将变量声明移到每个变量的范围之外,就可以立即创建并丢弃变量
NSString *createUser;
if ([salesPersonName isEqual: @"XXX "]) {
createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
createUser = @"111";
} else {
createUser = @"1111";
}
此外,您可以使用字典代替多if语句:
NSDictionary *dict = @{
@"XXX " : @"1",
@"XXXX" : @"11",
@"XXXXX" : @"111"
};
NSString *createUser = dict[salesPersonName] ?: @"1111";
只要将变量声明移到每个变量的范围之外,就可以立即创建并丢弃变量
NSString *createUser;
if ([salesPersonName isEqual: @"XXX "]) {
createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
createUser = @"111";
} else {
createUser = @"1111";
}
此外,您可以使用字典代替多if语句:
NSDictionary *dict = @{
@"XXX " : @"1",
@"XXXX" : @"11",
@"XXXXX" : @"111"
};
NSString *createUser = dict[salesPersonName] ?: @"1111";
只需在if块范围之外声明createUser实例变量,即与salersonName声明类似。这将减少代码中的冗余并解决问题。只需在if块范围之外声明createUser实例变量,即与您的SalesorsonName声明类似。这将减少代码中的冗余并解决问题。在if块之外声明实例变量,并使用空值初始化它,因为它可能会在bodyString变量行使程序崩溃
NSString *createUser = @"";
if ([salesPersonName isEqual: @"XXX "]) {
createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
createUser = @"111";
} else {
createUser = @"1111";
}
// Hier die keyvalues eintragen
NSString *bodyString = [NSString stringWithFormat:@"name=nachtelefonieren&assigned[id]%@=&assigned[objectName]=SevUser&category[id]=31&category[objectName]=Category& createUser[id]=%@&createUser[objectName]=SevUser¬iceCreator=0&deadline=%@&status=100&object[id]=28243&object[objectName]=SevClient",assignedUser,createUser,deadline];
在if块之外声明实例变量,并用空值初始化它,因为它可能会在bodyString变量行使程序崩溃
NSString *createUser = @"";
if ([salesPersonName isEqual: @"XXX "]) {
createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
createUser = @"111";
} else {
createUser = @"1111";
}
// Hier die keyvalues eintragen
NSString *bodyString = [NSString stringWithFormat:@"name=nachtelefonieren&assigned[id]%@=&assigned[objectName]=SevUser&category[id]=31&category[objectName]=Category& createUser[id]=%@&createUser[objectName]=SevUser¬iceCreator=0&deadline=%@&status=100&object[id]=28243&object[objectName]=SevClient",assignedUser,createUser,deadline];
您正在创建三个名为createUser的完全独立的变量,这些变量不在其作用域内使用,编译器会相应地警告您。这些变量会影响现有的createUser变量,否则在示例的最后一行中会出现未知标识符编译器错误。您正在创建三个名为createUser的完全独立变量,这些变量不在其作用域内使用,编译器会相应地警告您。这些变量会影响现有的createUser变量,否则在示例的最后一行中会出现未知标识符编译器错误。