Objective-c字符串追加导致异常

时间:2010-03-29 17:53:27

标签: objective-c

以下代码给我带来了一些问题。第三行会导致程序崩溃......在我第一次单步执行时不会发生这种情况,但稍后会在程序中进行。如果我注释掉第三行,程序就会顺利运行。

NSString *myRequestString = @"text";
int i = 1;
myRequestString = [myRequestString stringByAppendingString:[NSString stringWithFormat: @"t=%d", i]];

该代码导致此异常:

*** -[CFString release]: message sent to deallocated instance 0xb4c43fe0

在旁注中,任何人都可以告诉我如何在objective-c中连接字符串,就像任何其他正常语言一样......我无法相信没有连接运算符。

非常感谢任何和所有帮助。

2 个答案:

答案 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