【发布时间】:2012-03-30 11:00:12
【问题描述】:
我使用 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 release]时,模拟器会崩溃...
[dataArray 发布]; [notiyStr 发布]; // [cacheStr 释放]; /* 碰撞 ... */
谢谢!
【问题讨论】:
标签: iphone crash nsstring release