проблема с NSString stringWithString, в приложении iPhone - PullRequest
0 голосов
/ 01 декабря 2009

Это фрагмент кода, с которым у меня были проблемы. У меня есть приложение для iPhone, которое отлично работает для 99% моих пользователей, но, возможно, для 1%, у меня есть эта ошибка, которую я не могу устранить или воспроизвести с моей стороны. Приложение просто зависает для них, и на самом деле не падает (так что никаких отчетов о сбоях). Некоторое специальное тестирование распространения выявило проблему в этом фрагменте кода. Если у кого-то есть идеи, в чем может быть проблема, пожалуйста, дайте мне знать. Спасибо.

    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];

Ответы [ 2 ]

3 голосов
/ 01 декабря 2009

В этом коде:

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

Если полное имя равно @ "", то вы вызовете исключение при вызове [полное имя substringToIndex: 1].

1 голос
/ 01 декабря 2009

Зачем ты это делаешь?

addChar = [[NSString stringWithString: [[fullname substringToIndex:1] capitalizedString]] retain];

Вы уже вернули строку:

addChar = [[fullname substringToIndex:1] capitalizedString];

Устраняет необходимость в [addChar release].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...