以下代码给我带来了一些问题。第三行会导致程序崩溃......在我第一次单步执行时不会发生这种情况,但稍后会在程序中进行。如果我注释掉第三行,程序就会顺利运行。
NSString *myRequestString = @"text";
int i = 1;
myRequestString = [myRequestString stringByAppendingString:[NSString stringWithFormat: @"t=%d", i]];
该代码导致此异常:
*** -[CFString release]: message sent to deallocated instance 0xb4c43fe0
在旁注中,任何人都可以告诉我如何在objective-c中连接字符串,就像任何其他正常语言一样......我无法相信没有连接运算符。
非常感谢任何和所有帮助。
答案 0 :(得分:0)
听起来你在某个时刻发布myRequestString
而没有保留它,这是不正确的according to the memory management rules。
不,没有连接运算符。 C中也没有一个。
答案 1 :(得分:-1)
您需要NSMutableString来执行此操作:
NSMutableString *myRequestString = [[NSMutableString alloc] initWithCapacity:20];
[myRequestString appendString:@"text"];
int i = 1;
myRequestString = [myRequestString appendFormat: @"t=%d", i];
不要忘记:NSString is immutable。