Почему NSString приводит к сбою моей версии Release, но внутри Xcode она работает?

Моя программа извлекает строку в стиле C из файла, преобразует ее в NSString и помещает в NSMutableArray. Каждый раз, когда я запускаю программу, будь то отладочная или выпускная версия, в XCode она работает отлично. Однако каждый раз, когда я запускаю его вне XCode, он падает, и в отчете говорится: «-[NSPlaceholderString initWithString:]: nil arguments». Это строка кода, в которой возникает проблема.

input = [[[NSString alloc] initWithString:[NSString stringWithUTF8String:data->acctNames]] mutableCopy];

Я также пробовал это:

input = [NSString stringWithUTF8String:data->acctNames];

Кто-нибудь может объяснить, что с этим не так?


person sud0    schedule 21.06.2011    source источник
comment
А как насчет input = [NSString stringWithFormat:@"%s", data->acctNames];?   -  person aroth    schedule 21.06.2011
comment
@aroth Я даже не видел твоего ответа раньше. Теперь он работает отлично! Спасибо!   -  person sud0    schedule 22.06.2011


Ответы (1)


Похоже, файл, который вы открываете, не существует, и строка не инициализируется. Вы должны посмотреть путь к файлу и убедиться, что это абсолютный путь. Возможно, вы пытаетесь открыть файл в локальном каталоге, а файл не существует в каталоге выполнения после того, как вы создали двоичный файл.

person Suroot    schedule 21.06.2011
comment
Да, я так и думал, но файлы создаются, если они не существуют. И когда я проверяю это после запуска приложения, они там. - person ; 22.06.2011