iphone - 发行时NSString崩溃

标签 iphone crash nsstring release

我使用NSString附加字符串,但是当我释放“cacheStr” NSString时,iphone模拟器崩溃了。
我应该将发布代码放在哪里?

初始化代码:我使用三个NSString追加dataArray的内容。

NSMutableArray *dataArray = [[NSMutableArray alloc] init];
NSString *cacheStr = [[NSString alloc] init];
NSString *tmpStr = [[NSString alloc] init];
NSString *notiyStr = [[NSString alloc] initWithFormat:@"This is a test message!"];
dataArray = [NSArray arrayWithObjects:
                      @"currency1.png",
                      @"currency2.png",
                      @"currency3.png",
                      @"currency4.png",
                      @"currency5.png",
                      @"xxxxxx",
                      @"currency1.png",
                      @"currency2.png",
                      @"currency3.png",
                      @"currency4.png",
                      @"currency5.png",
                      @"xxxxxx",
                      nil];

append string code : use for loop to append strings.

int isFailed = 0;
int countOfDataArray = [dataArray count];
if (!isFailed) {
    for (int i=0; i < countOfDataArray; i++) {
        if ([[dataArray objectAtIndex:i] isEqualToString:@"xxxxxx"]) {
            tmpStr = [cacheStr stringByAppendingFormat:@"%@\n", [dataArray objectAtIndex:i]];
        }
        else {
            tmpStr = [cacheStr stringByAppendingFormat:@"value %d : %@\n", i+1, [dataArray objectAtIndex:i]];
        }
        cacheStr = [tmpStr copy];
        [tmpStr release];
    }
}
tmpStr = [notiyStr stringByAppendingString:cacheStr];

发布代码:当我添加[cacheStr版本]时,模拟器将崩溃...

[dataArray release];
[notiyStr release];
// [cacheStr release];     /*  crash ... */

谢谢!

最佳答案

这样声明NSString更简单
NSString *tmpStr = @"This is a test message!";
那么当您不使用alloc时就无需释放它

关于iphone - 发行时NSString崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941672/

相关文章:

iphone - XCode4 不显示 "C/C++ Compiler Version"选项

vb6 - 如何调试GPF崩溃?

javascript - 如何为 Web 应用程序进行崩溃报告

c# - Visual Studio 2010 在打开新项目时不断崩溃

ios - 如何在 Objective-C 中确定相同的 NSString?

ios - 如何将粗体和斜体应用于 NSMutableAttributedString 范围?

iphone - Objective-C 编码准则

iphone - 如何在 iPod touch 和 iphone 中测试我自己的应用程序?

ios - 带约束的 Swift 圆形按钮

ios - 在Swift或Objective-C中从字符串中删除确切的词组