Tôi có chút mã sau đây:stringWithUTF8String thất bại, nhưng chỉ thỉnh thoảng
NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&fileError];
NSString *recipe = @"";
if (fileError == nil) {
recipe = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"Converted Recipe as: %@",recipe);
NSLog(@"Original Data was: %@",data);
} else {
NSLog(@"Error reading file: %@", [fileError localizedDescription]);
}
Vấn đề là đôi khi stringWithUTF8String trả về null và đôi khi nó sẽ trả về một cách chính xác các nội dung của tập tin ... cùng một tập tin. Đôi khi nó hoạt động và đôi khi nó không. Đây là một đoạn trích từ nhật ký khi nó không .... Điều đó có nghĩa với tôi rằng tệp đọc đang hoạt động, nhưng vì lý do nào đó, chuyển đổi đã thất bại trong lần này. Nếu tôi làm điều đó một lần nữa (điều này được gọi là kết quả của một tableView didSelectRowAtIndexPath: Vì vậy, tôi chỉ có thể bấm vào một dãy ghế khác và sau đó trở lại với trang này
2010-08-01 16:14:29.031 RecipeBrowse[52056:207] Converted Recipe as: (null)
2010-08-01 16:14:29.037 RecipeBrowse[52056:207] Original Data was: <426c6163 6b656e65 64204361 626f2046 69736820 5461636f 730a0a49 4e475245 4449454e 54533a0a 0a2d200a 0a0a4d45 54484f44 3a0a0a42 4c41434b 454e4544 20434142 4f204649 53482054 41434f53
Bất kỳ ý tưởng làm thế nào để làm cho điều này đáng tin cậy hơn.? ?
Quay lại và đọc tài liệu về xử lý lỗi. KHÔNG BAO GIỜ kiểm tra nếu lỗi không phải là không; LUÔN kiểm tra giá trị trả lại (dữ liệu trong trường hợp này) thay thế. –