Iphone NSString stringwithstring和stringwithformat差异

Iphone NSString stringwithstring和stringwithformat差异,iphone,xcode,string,nsstring,openal,Iphone,Xcode,String,Nsstring,Openal,我真的很困惑,我们将非常感谢您的帮助 那么下面的区别是什么呢 int myInteger = 1; myString = [NSString stringWithFormat:@"anotesound%i",myInteger]; 还有这个 myString = [NSString stringWithString:@"anotesound1"]; 我认为两者应该相同,但open al不接受它们相等,它适用于stringwithstring,但不适用于stringwithformat。结果相

我真的很困惑,我们将非常感谢您的帮助

那么下面的区别是什么呢

int myInteger = 1;
myString = [NSString stringWithFormat:@"anotesound%i",myInteger];
还有这个

myString = [NSString stringWithString:@"anotesound1"];

我认为两者应该相同,但open al不接受它们相等,它适用于stringwithstring,但不适用于stringwithformat。结果相同,错误在别处

区别在于myInteger是否是常量或不同实例化上的填充更改。如果始终相同,请使用:

myString=@“anotesound1”


当字符串为常量时,不需要使用
stringWithString
方法。

stringWithFormat:始终返回新创建并自动释放的对象,该对象最终将被释放并成为僵尸。stringWithString:在本例中,返回文本(常量)对象本身,该对象永远不会被释放

我建议您学习iOS的内存管理,或者使用ARC。

它怎么不起作用?编译器错误或崩溃,或者结果字符串是什么样子?您是否尝试过myString=[NSString stringWithFormat:@“anotesound%d”,myInteger]?这些将输出相同的内容“anotesound1”。不确定您的问题是什么。NSLog(@“%@”,myString);给出的输出与我头撞墙2小时的输出相同。我还尝试使用%d不工作。。。我有一个类声音管理器,在该类中的这一行NSNumber*numVal=[soundLibrary objectForKey:aSoundKey];发生EXC\u错误\u访问错误。谢谢你的回答谢谢你仍然没有弄明白。字符串不是常数,它是由开关1或2改变的运行分析仪并打开NSZombies。代码的不同之处在于它只是改变了足够的时间来引起bug的出现。非常感谢你,它找到了一个僵尸。已向地址为0xf37d820的解除分配对象(僵尸)发送Objective-C消息。现在我该怎么办?