首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非release NSMutableString

非release NSMutableString
EN

Stack Overflow用户
提问于 2011-12-27 16:25:09
回答 2查看 310关注 0票数 0

我开始在ios-5中开发一个项目,我已经在我的应用程序中创建了数据库。在这里,我在appDelegate中创建了bdgDBArr,它包含像93,55,68,95,45这样的值……我想创建像badge_id= @"93,55,68,95,45“这样的字符串,其中appDelegate.sb是NSString类型,sb1是NSMutableString类型

这是我的代码

代码语言:javascript
复制
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中得到了这个错误

代码语言:javascript
复制
wait_fences: failed to receive reply: 10004003

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-12-27 17:04:07

我不能帮助您解决问题,但是您可以--也应该--将您的代码简化为一行代码:appDelegate.sb = [appDelegate.bdgDBArr componentsJoinedByString:@","];,它更具表现力,并且做了正确的事情。

当我们在那里的时候:

Objective-C使得编写像散文一样容易阅读的代码变得相当容易。不要使用像sbbdgDBArr这样的成员/变量名来破坏它。

哦,还有一个运算符可以测试不等性:!=使用它而不是否定相等测试的结果。你未来的自己和其他每一个看着你代码的人都会心存感激。

票数 2
EN

Stack Overflow用户

发布于 2011-12-27 16:57:29

试一试:使用自动释放而不是释放。它会改变什么吗?

你的属性appDelegate.sb是否在应用委托中与@syntetise setter/getter一起使用,或者你是否使用了自己的代码来实现setter?在这种情况下,请发布您的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8642534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档