我使用下面的代碼創建了一個文件:如何使用塊來處理由NS方法返回的錯誤
NSMutableString *tabString = [NSMutableString stringWithCapacity:0]; // it will automatically expand
// write column headings <----- TODO
// now write out the data to be exported
for(int i = 0; i < booksArray.count; i++) {
[tabString appendString:[NSString stringWithFormat:@"%@\t,%@\t,%@\t\n",
[[booksArray objectAtIndex:i] author],
[[booksArray objectAtIndex:i] binding],
[[booksArray objectAtIndex:i] bookDescription]]];
}
if (![self checkForDataFile: @"BnN.tab"]) // does the file exist?
[[NSFileManager defaultManager] createFileAtPath:documentsPath contents: nil attributes:nil]; // create it if not
NSFileHandle *handle;
handle = [NSFileHandle fileHandleForWritingAtPath: [NSString stringWithFormat:@"%@/%@",documentsPath, @"BnN.tab"]]; // <---------- userID?
[handle truncateFileAtOffset:[handle seekToEndOfFile]]; // tell handle where's the file fo write
[handle writeData:[tabString dataUsingEncoding:NSUTF8StringEncoding]]; //position handle cursor to the end of file (why??)
這是我使用的回讀文件(用於調試)的代碼:
// now read it back
NSString* content = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",documentsPath, @"BnN.tab"]
encoding:NSUTF8StringEncoding
error: ^{ NSLog(@"error: %@", (NSError **)error);
}];
我得到這最後的聲明,說2個生成錯誤:
發送「無效(^)(無效)」,以不兼容的類型NSE的」參數RROR * __ *自動釋放」
和
使用未聲明的標識符的 '錯誤'
這是第一次我使用一個塊來處理的方法返回的錯誤;我無法在SO或Google中找到任何文檔顯示如何執行此操作。我究竟做錯了什麼?
你爲什麼認爲你可以傳遞一個塊到一個類型爲'NSError **'的參數? – rmaddy 2014-08-28 16:09:15
呃......我在一個例子中看到了......錯,是吧?這是*塊*我遇到問題... SD – SpokaneDude 2014-08-28 16:09:56