2012-02-13 34 views
10

Tôi cần lưu một số dữ liệu trong ứng dụng của mình, khi ứng dụng chấm dứt và ngay cả khi nó bị treo. Tôi biết rằng applicationWillTerminate được gọi khi ứng dụng chấm dứt nhưng tôi không chắc chắn phương thức nào được gọi khi ứng dụng gặp sự cố.
Ai đó có thể giúp tôi ở đây không?Có phương pháp nào trong appDelegate được gọi khi ứng dụng gặp sự cố không?

+1

bạn nên viết một ứng dụng không bị lỗi, giải quyết vấn đề của bạn –

+2

Cân nhắc rất tốt Vince. Nhưng bạn không bao giờ biết điều gì có thể làm hỏng ứng dụng của bạn. Đối phó với nó trước đó là tốt hơn so với làm nó sau này. – Nitish

Trả lời

14

Bạn cũng có thể thêm trình xử lý ngoại lệ của riêng mình để bắt lỗi.

Trước tiên, bạn cần phải xác định phương pháp ngoại lệ:

Sau đó nói với các ứng dụng sử dụng bộ xử lý ngoại lệ của bạn:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 
    // The rest if you code .... 
} 

Không có cách nào để làm cho ứng dụng lưu dữ liệu trên đâm, kể từ khi tiết kiệm có thể là lý do cho vụ tai nạn!

+0

Tôi có thể tiết kiệm thời gian hiện tại (thời gian tai nạn ứng dụng) trong NSUserDefaults trong phương thức uncaughtExceptionHandler này không? Có thực hành tốt nhất không? – Bhushan

+0

Tôi không nghĩ rằng bạn có thể, nhưng bạn có thể viết lỗi của bạn để các ứng dụng sandbox, Đây là cách thư viện như crashlytics, hockyapp và sắp xếp công việc. – rckoenes

+0

cảm ơn phản hồi nhanh. Có cách nào khác để tiết kiệm thời gian hiện tại khi ứng dụng gặp sự cố không? Tôi đang tiết kiệm thời gian trong phương thức applicationWillTerminate nhưng nó không gọi khi ứng dụng gặp sự cố. Trên thực tế ứng dụng của tôi là theo cách mà tôi cần thời gian đăng xuất phiên cuối cùng để xử lý thêm. Bất kì sự giúp đỡ nào của bạn đều được hoan nghênh. – Bhushan

-3

Không, bạn không thể biết khi nào ứng dụng gặp sự cố.

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