2010-07-25 51 views
7

Vì vậy, tôi có một ứng dụng cơ bản để lưu trữ, tìm kiếm và thao tác dữ liệu. Các hoạt động CRUD cơ bản. Ở những nơi khác nhau của mã của tôi, nơi tôi đang lưu trữ hoặc cập nhật dữ liệu này, về cơ bản tôi có điều này:Làm thế nào để xử lý đúng Core Data lưu lỗi kinh nghiệm người dùng wrt trên iPhone?

NSError *error; 
if (![self.managedObjectContext save:&error]) { 
    // TODO: Handle this error 
    NSLog(@"Error while saving data %@, %@", error, [error userInfo]); 
} 

Hầu hết mọi người đều làm gì, khi nào những thứ này xuất hiện?

Điều duy nhất nảy ra trong đầu là chỉ bật lên một số thông báo kinh khủng UIAlertView với một thông điệp mơ hồ rằng đã xảy ra sự cố; không thực sự chắc chắn làm thế nào để phục hồi những điều này.

Vì lợi ích của đối số, hãy giả sử mô hình của tôi có ít hoặc không có xác thực, do đó, các lỗi duy nhất có thể xảy ra hoặc là có sự cố khủng khiếp hoặc một vấn đề lập trình.

Bất kỳ ý tưởng hay về trải nghiệm người dùng?

+0

Người dùng có thể làm gì không? Hay điều này hoàn toàn nằm ngoài tầm kiểm soát của người dùng? Có ** không có gì ** họ có thể làm ngắn tắt máy tính? –

+0

Vâng, giả sử đó là một tình huống mà họ không thể làm được nhiều; như một cuộc gọi đến [NSManagedObjectContext save:] không thành công. – davetron5000

Trả lời

5

Jakob Nielsen có few concise guidelines bạn có thể muốn xem; trong tất cả những gì anh ta đề xuất, cái tôi đề nghị bạn chỉ ra trong một thông báo lỗi rằng đó không phải lỗi của người dùng. Từ trải nghiệm của riêng tôi trong thử nghiệm người dùng, hầu hết người dùng tin rằng họ đã làm điều gì đó sai khi một lỗi xuất hiện và điều này dẫn đến thất vọng.

Có lẽ cái gì đó như:

Có một vấn đề tiết kiệm: đừng lo lắng nó không phải là lỗi của bạn! Nếu bạn khởi động lại ứng dụng, bạn có thể thử lại. Nhưng vui lòng liên hệ với [nhà phát triển liên hệ] và cho anh ấy biết lỗi là [mã lỗi ngắn, đáng nhớ]

0

Trong trường hợp như thế này, tôi nghĩ điều tốt nhất cần làm là trình bày cảnh báo cho người dùng và thoát khỏi ứng dụng.

+0

Bất kỳ mẹo nào về từ ngữ? Tôi đặt chúng trong, và tôi đã kết thúc với rất nhiều lame "Đã là một lỗi tiết kiệm Widget của bạn, hãy thử khởi động lại ứng dụng". Tôi ghét những thứ đó, nhưng tôi không biết phải làm gì nữa ?! – davetron5000

0

Câu trả lời ngắn gọn là tôi có không bao giờ có lỗi lưu xảy ra trong quá trình sản xuất. Thông thường, tôi thực hiện những xác nhận này và khiến họ gặp sự cố ứng dụng. Điều này là để đảm bảo tôi bắt chúng trong quá trình phát triển.

Nếu ứng dụng của bạn được viết tốt, bạn không nên gặp phải một trong các trường hợp này khi người dùng đang chạy ứng dụng.

Đối với văn bản, tùy thuộc vào ứng dụng của bạn và không có quy tắc chung cho chúng.

+0

Trong khi tôi đồng ý với tình cảm, bạn không nên xử lý những điều này theo cách nào đó, chỉ đơn giản là để xử lý các trường hợp cạnh mà bạn bỏ sót, hoặc những trường hợp bị xử lý nhưng vì một lý do nào đó xảy ra? (E. g. Sự cố thiết bị gây ra một chút để lật) – RonLugge

+0

khi bạn bắt đầu thêm quy tắc xác thực hoặc các ràng buộc duy nhất, bạn sẽ nhận được lỗi lưu. – malhal

+0

Chỉ khi bạn không xử lý đúng cách trong Giao diện người dùng và/hoặc chính sách hợp nhất của bạn. –

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