2010-01-19 23 views
5

Tôi có khá một vài nơi trong ứng dụng iPhone của tôi với một dòng như thế này:Thay hủy bỏ() cho các lỗi chưa được giải quyết trong iPhone/CoreData

if (![context save:&error]) { 
    /* 
    Replace this implementation with code to handle the error appropriately. 

    abort() causes the application to generate a crash log and terminate. 
    You should not use this function in a shipping application, although 
    it may be useful during development. If it is not possible to recover 
    from the error, display an alert panel that instructs the user to quit 
    the application by pressing the Home button. 
    */ 

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
} 

Tôi đang sắp xếp của thua lỗ vào những gì để thực sự thay thế hủy bỏ() trong một ứng dụng sản xuất. Tôi không cho rằng có bất kỳ cách đơn giản nào để cho phép thiết bị của người dùng gửi lại lỗi cho bạn. Thực hành tiêu chuẩn ở đây là gì?

Trả lời

5

Điều tôi đã làm phụ thuộc vào những gì đang xảy ra trong ứng dụng. Nếu lưu có thể được cuộn lại mà không ảnh hưởng đến ứng dụng, bạn có thể làm điều đó. Điều đó sẽ khá hiếm. Nhiều khả năng, bạn sẽ muốn cho người dùng biết rằng lưu của họ không thành công. Tùy thuộc vào nguyên nhân gây ra lỗi, bạn có thể đề nghị thử lại hoặc giải thích lý do tại sao nó không hợp lệ.

Về cơ bản, điều này phụ thuộc vào ứng dụng của bạn và cách bạn sẽ phục vụ tốt nhất cho người dùng.

+2

Tôi đồng ý với Don. Ít nhất bạn nên trình bày một thông báo cho người dùng với các chi tiết về những gì đã xảy ra. Có lẽ một tùy chọn để gửi báo cáo cho bạn để bạn có thể khắc phục sự cố trong bản phát hành tiếp theo. Có nói rằng, những lỗi này * sẽ * không bao giờ xảy ra trong tự nhiên. Lỗi với dữ liệu cốt lõi, theo kinh nghiệm của tôi, hầu như luôn luôn xảy ra trong phát triển nếu thử nghiệm đầy đủ đã được tiến hành. Vấn đề duy nhất tôi đã thấy trong tự nhiên với Core Data trực tiếp liên quan đến việc di trú và thường là trên màn hình nền. –

+0

Vâng, tôi đã lo lắng đây là một trong những câu hỏi "không có câu trả lời thực sự". :) Theo tính toán của tôi, không có lỗi nên được ném, có nghĩa là nếu có, tôi là sai về một cái gì đó ... mà sẽ được disconcerting. Cảm ơn mọi người! – AndrewO

Các vấn đề liên quan