操作某些NSString
对象时,我得到了垃圾值。我认为问题源于我对NSString在基本级别的工作方式的误解。下面,我有一个对象,它有一个字符串指针作为合成属性。当我尝试直接将其注销时,编译器会给我一个警告,但它会注销我期望的值。在下一行,我尝试以正确的方式记录该字符串,但最终我得到了垃圾。
代码段
MyObject *object = [self.objects objectAtIndex:indexPath.row];
NSString *myString = object.myString;
NSLog(myString); // format not a string literal and no formal arguments
NSLog(@"formatted = %s", myString);
输出
2011-05-16 13:06:51.137 MyProgram[917:207] thisValueIsGood
2011-05-16 13:06:51.138 MyProgram[917:207] formatted = `å
这个问题已经滚雪球到其他使用这个最终字符串的函数上。当我将该字符串与其他字符串连接起来时,我会得到更多垃圾。
答案 0 :(得分:6)
NSString是一个对象,而不是%s
,使用%@
。