Objective-C浓缩方法的差异
澄清问题。 我最初尝试使用Objective-C浓缩方法的差异,objective-c,append,stringwithformat,Objective C,Append,Stringwithformat,澄清问题。 我最初尝试使用stringByAppendingString方法连接两个字符串: NSString *dataString = @","; NSInteger i = 0; NSString *cycleCountString = @""; for (i = 0; i<[[self cycleList] count]; i++) { cycleCountString = [NSString stringWithFormat:@"cycle#%d,",i]; [
stringByAppendingString
方法连接两个字符串:
NSString *dataString = @",";
NSInteger i = 0;
NSString *cycleCountString = @"";
for (i = 0; i<[[self cycleList] count]; i++) {
cycleCountString = [NSString stringWithFormat:@"cycle#%d,",i];
[dataString stringByAppendingString:cycleCountString];
}
NSLog(@"DataString is: %@",dataString);
你知道为什么以前的方法不起作用吗?stringByAppendingString
是否不像我想象的那样工作
谢谢 您永远不会更新dataString的值
dataString = [dataString stringByAppendingString: cycleCountString];
您永远不会更新dataString的值
dataString = [dataString stringByAppendingString: cycleCountString];
NSString
实例是不可变的-您不能更改它们stringByAppendingString:
不会更改原始的NSString
实例,它会创建一个新的NSString
并返回该实例
新版本之所以有效,是因为您将stringWithFormat:
的结果分配给dataString
。您可以使用以下内容使旧版本正常工作:
dataString = [dataString stringByAppendingString:cycleCountString];
NSString
实例是不可变的-您不能更改它们stringByAppendingString:
不会更改原始的NSString
实例,它会创建一个新的NSString
并返回该实例
新版本之所以有效,是因为您将stringWithFormat:
的结果分配给dataString
。您可以使用以下内容使旧版本正常工作:
dataString = [dataString stringByAppendingString:cycleCountString];
文档中的示例
NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];
生成字符串“错误:文件过早结束”。文档中的示例
NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];
生成字符串“错误:文件过早结束”。因为您没有将AGIA分配给数据字符串
NSString *dataString = @",";
NSInteger i = 0;
NSString *cycleCountString = @"";
for (i = 0; i<[[self cycleList] count]; i++) {
cycleCountString = [NSString stringWithFormat:@"cycle#%d,",i];
dataString=[dataString stringByAppendingString:cycleCountString];//this Line
}
NSLog(@"DataString is: %@",dataString);
NSString*dataString=@“,”;
NSInteger i=0;
NSString*cycleCountString=@”;
对于(i=0;i,因为u没有将agian分配给数据字符串
NSString *dataString = @",";
NSInteger i = 0;
NSString *cycleCountString = @"";
for (i = 0; i<[[self cycleList] count]; i++) {
cycleCountString = [NSString stringWithFormat:@"cycle#%d,",i];
dataString=[dataString stringByAppendingString:cycleCountString];//this Line
}
NSLog(@"DataString is: %@",dataString);
NSString*dataString=@“,”;
NSInteger i=0;
NSString*cycleCountString=@”;
因为(i=0;问题:)我一直想念这样的东西。没问题:)我一直想念这样的东西。