我开始在ios-5中开发一个项目,我已经在我的应用程序中创建了数据库。在这里,我在appDelegate中创建了bdgDBArr,它包含像93,55,68,95,45这样的值……我想创建像badge_id= @"93,55,68,95,45“这样的字符串,其中appDelegate.sb是NSString类型,sb1是NSMutableString类型
这是我的代码
NSMutableString *sb1 = [[NSMutableString alloc] init];
if (![appDelegate.bdgDBArr count]==0) {
for (int i=0; i < [appDelegate.bdgDBArr count]; i++) {
if (!i==0) {
[sb1 appendString:@","];
}
[sb1 appendString:[[appDelegate.bdgDBArr objectAtIndex:i] valueForKey:@"key1"]];
}
}
else {
[sb1 appendString:@""];
}
appDelegate.sb = sb1;
NSLog(@"appDelegate.sb showSB===%@",appDelegate.sb);
[sb1 release]; //error wait_fences: failed to receive reply: 10004003
sb1 = nil;这段代码运行良好,得到了93,55,68,45的输出,但同时我在NSLog中得到了这个错误
wait_fences: failed to receive reply: 10004003有什么想法吗?
发布于 2011-12-27 17:04:07
我不能帮助您解决问题,但是您可以--也应该--将您的代码简化为一行代码:appDelegate.sb = [appDelegate.bdgDBArr componentsJoinedByString:@","];,它更具表现力,并且做了正确的事情。
当我们在那里的时候:
Objective-C使得编写像散文一样容易阅读的代码变得相当容易。不要使用像sb或bdgDBArr这样的成员/变量名来破坏它。
哦,还有一个运算符可以测试不等性:!=使用它而不是否定相等测试的结果。你未来的自己和其他每一个看着你代码的人都会心存感激。
发布于 2011-12-27 16:57:29
试一试:使用自动释放而不是释放。它会改变什么吗?
你的属性appDelegate.sb是否在应用委托中与@syntetise setter/getter一起使用,或者你是否使用了自己的代码来实现setter?在这种情况下,请发布您的代码。
https://stackoverflow.com/questions/8642534
复制相似问题