Я использую стороннюю библиотеку и вызываю одну из ее функций, подобных этому.[NSError сохранить]: сообщение отправлено на освобожденный экземпляр
NSError* error = nil;
self.updatedDocument.bookmarkParser.bookmarks = newBookmarks;
//save the document
[self.updatedDocument.bookmarkParser saveBookmarksWithError:&error];
[self.updatedDocument saveAnnotationsWithError:&error];
Файл стороннего apis .h выглядит следующим образом.
/// Saves the bookmark into a plist file at bookmarkPath.
/// @note Saving is done async.
- (BOOL)saveBookmarksWithError:(NSError *__autoreleasing*)error;
Я не уверен, если я правильно используя этот указатель NSError как я не уверен, что * __ autoreleasing делает. Спасибо за вашу помощь.
'__autoreleasing *' освобождает объекты при возврате. Я не уверен, но я думаю, что ваше предположение об использовании выделенного объекта во втором вызове метода правильное. Проверьте [ответ] Колина [http://stackoverflow.com/questions/9502116/use-of-autoreleasing-in-code-snippet-example). [This] (http://stackoverflow.com/questions/8862023/in-which-situations-do-we-need-to-write-autoreleasing-ownership-qualifier) поток также затрагивает эту концепцию. – Gandalf