2010-03-07 1 views
2

Мне нужно пропустить что-то простое, но Google не помогает.Переопределение файла NSDocument'sWrapperOfType приводит к тому, что «Документ не может быть сохранен».

Мой файл сохраняет и загружает все. (Я переопределил dataOfType, чтобы получить некоторые вещи в нем.) Затем я переопределяю fileWrapperOfType (в рамках подготовки к созданию пакета), и я получаю «Документ« Без названия »не может быть сохранен как« тест ».» когда я пытаюсь сохранить. Даже когда я опустошить свой метод к абсолютному самой основной форме я могу думать ...

- (NSFileWrapper*)fileWrapperOfType:(NSString*)typeName error:(NSError**)outError 
{ 
    NSFileWrapper* worldWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil]; 
    return [worldWrapper autorelease]; 
} 

... Я до сих пор не может спасти. Что мне не хватает?

+0

Как правило, проверять возвращаемые значения и - если доступно - параметры 'NSError' всегда полезны. – Jay

ответ

1

Из документов (курсив мой):

Словарь необходимо содержать записи, значения которых файловые оболочки, которые должны стать дети и чьи ключи являются именами файлов.

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

+0

Закрыть; Я проверил, чтобы убедиться, что worldWrapper не был ник (и это было). Но этот ответ заставил меня попробовать использовать пустой словарь, а не нулевой, и это сработало. Это все еще кажется очень необычным; не большинство методов позволяют использовать словарь nil вместо пустого? – andyvn22

+1

@ andyvn22: Некоторые методы делают, некоторые нет. Становится все более распространенным то, что вам нужно передать пустое значение требуемого типа (словарь, строка, массив и т. Д.), А не нуль, так что это вообще хорошая идея, даже если вы не уверены, что это необходимо. – Chuck

 Смежные вопросы

  • Нет связанных вопросов^_^