首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone应用程序中的NSString stringWithString出现问题

iPhone应用程序中的NSString stringWithString出现问题
EN

Stack Overflow用户
提问于 2009-12-01 14:04:13
回答 2查看 979关注 0票数 0

这是一些我一直遇到问题的代码片段。我有一个适用于99%的用户的iPhone应用程序,但可能只有1%的用户有这个bug,我不能解决或在我这一端重现。这个应用程序只是为他们冻结,并没有真正崩溃(所以没有崩溃报告)。一些特别的分发测试已经揭示了这段代码中存在的问题。如果任何人有任何想法的问题可能是,请让我知道。谢谢。

代码语言:javascript
复制
    NSString *addChar = nil; 

    NSString *fullname =  (NSString *)ABRecordCopyCompositeName(record);
    addChar = [[NSString stringWithString: [[fullname substringToIndex:1] capitalizedString]] retain];

    [fname release];

    NSMutableArray *array = [app_contacts objectForKey:addChar]; // lookup if key exists

    if (array == nil) // if nothing in key, create new array
    {
           NSLog(@"array empty"); 
           NSMutableArray *newarray = [[NSMutableArray alloc] init];
           [newarray insertObject:one_person atIndex:0];
           [app_contacts setValue:newarray forKey:addChar];
           [newarray release];
    }
    else
    {
           NSLog(@"array not empty");
           [array addObject:one_person];
           [app_contacts setValue:array forKey:addChar];
    }

    [addChar release];
EN

回答 2

Stack Overflow用户

发布于 2009-12-01 17:29:06

在此代码中:

代码语言:javascript
复制
NSString *fullname =  (NSString *)ABRecordCopyCompositeName(record);
addChar = [[NSString stringWithString: [[fullname substringToIndex:1] capitalizedString]] retain];

如果fullname等于@"",则在调用fullname substringToIndex:1时会引发异常。

票数 3
EN

Stack Overflow用户

发布于 2009-12-01 14:09:18

你为什么要这么做?

代码语言:javascript
复制
addChar = [[NSString stringWithString: [[fullname substringToIndex:1] capitalizedString]] retain];

你已经得到了一个字符串:

代码语言:javascript
复制
addChar = [[fullname substringToIndex:1] capitalizedString];

也消除了对[addChar release]的需求。

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

https://stackoverflow.com/questions/1824277

复制
相关文章

相似问题

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