Tôi đang cố gắng hiểu ý nghĩa của giá trị được trả về bởi [NSData writeToFile:options:error:]. Phương thức trả về BOOL, theo tài liệu của Apple là "CÓ nếu hoạt động thành công, nếu không thì KHÔNG."không thành công, nhưng không có đối tượng lỗi nào được trả về. Tại sao?
Đủ công bằng, nhưng nếu KHÔNG, tôi đã giả định rằng thông số lỗi sau đó sẽ được đặt thành giá trị NSError * có thể truy xuất được. Tuy nhiên trong kết quả tôi đang đi qua, đó không phải là trường hợp. Theo đó tôi hơi bối rối, và không biết cách xác định nguyên nhân gây ra lỗi.
Để wit, tôi đã có mã này (nhiều hơn hoặc ít hơn):
NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if (error)
NSLog(@"error = %@", [error description]);
success
hóa ra là NO
trong mã Tôi đang chạy, nhưng tuyên bố NSLog
không bao giờ được thực thi. Làm thế nào mà?
Howard
Đó chính xác là gì. Cảm ơn bạn. Tôi chưa bao giờ bị cắn bởi thực tế bạn có thể gửi một tin nhắn đến đối tượng nil; Cuối cùng: bây giờ tôi tự coi mình là một lập trình viên Objective-C thực sự! :-) – hkatz
Thông điệp đó đến đối tượng nil hầu như luôn khiến tôi mất vài giờ :) – ColdSteel