Tôi muốn tạo một thông báo xảy ra mỗi khi một ngày mới xảy ra cục bộ (trong khi sử dụng ứng dụng hoặc nếu xảy ra ở giữa lần khởi chạy). Tôi đã tự hỏi điều gì có thể là cách tốt nhất để đi về việc quan sát sự thay đổi này.Xác định xem thay đổi ngày đã xảy ra
Trả lời
Trong khi ứng dụng của bạn đang chạy, bạn có thể nghe thông báo UIApplicationSignificantTimeChangeNotification và kiểm tra ngày hiện tại khi bạn nhận được điều đó. Khi ứng dụng của bạn thoát, bạn có thể lưu ngày hiện tại vào tùy chọn của mình và khi ứng dụng khởi chạy lại, bạn có thể kiểm tra ngày đã lưu so với ngày hiện tại.
Bạn có thể nhận thông tin về ngày hiện tại bằng cách sử dụng NSDateComponents.
tôi có lẽ muốn làm hai việc:
Trong khi các ứng dụng đang chạy, có một bộ NSTimer để thăm dò ý kiến ngày hiện tại [NSDate ngày] tại một khoảng thời gian nhất định. Lưu trữ giá trị của ngày cuối cùng một nơi nào đó (ngay cả trong mặc định của người dùng) và sau đó so sánh thời gian mới với thời gian được lưu trữ để kiểm tra một ngày mới.
Khi đóng/thoát ứng dụng, hãy lưu trữ ngày và giờ hiện tại theo cùng một cách ở trên. Sau đó, khi khởi chạy ứng dụng hoặc đưa ứng dụng lên nền trước, hãy kiểm tra ngày hiện tại so với ngày được lưu trữ.
NSDateComponents, NSCalendar và NSDate sẽ có ích cho việc này.
Check-out: Erica Sadun Time Utililties
Có một số phương pháp hữu ích có để kiểm tra ngày.
Hoặc bạn có thể nhìn vào UILocalNotifcations
Bạn có thể sắp xếp một thông báo địa phương với một repeatInterval của một ngày.
Tất cả phụ thuộc vào những gì bạn muốn làm nhưng đó là một số tùy chọn.
Như đã đề cập trong other thread, kể từ iOS8, bạn cũng có thể nghe trực tiếp NSCalendarDayChangedNotification.
- 1. Cách xác định ngày sinh hoặc ngày kỷ niệm xảy ra trong phạm vi ngày
- 2. Xác định nếu sự kiện đã thay đổi xảy ra từ đầu vào của người dùng hoặc không
- 3. Thay đổi xác định dạng ngày, MVC 3 và jQuery
- 4. Recaptcha: Đã xảy ra lỗi nội bộ
- 5. Tôi làm cách nào để xác định những gì đã xảy ra với Mobile Safari?
- 6. Linq ChangeConflictException xảy ra khi gửi các thay đổi DataContext
- 7. Nút yêu cầu - Cách xác định xem có xảy ra lỗi trong khi yêu cầu không?
- 8. iphone - xác định xem cảm ứng xảy ra trong subview của một UIView
- 9. điều gì đã xảy ra với syscalls.h?
- 10. Android MotionEvent: tìm hiểu xem chuyển động đã xảy ra bên ngoài chế độ xem
- 11. Làm thế nào để MS Visual Studio xác định rằng tệp nguồn đã thay đổi?
- 12. Xem tất cả biến đã xác định
- 13. Điều gì đã xảy ra với regtlibv12?
- 14. Thay đổi dragshadow trong android, trong khi kéo xảy ra
- 15. Điều gì đã xảy ra với StringDecoder trong Dart?
- 16. Điều gì đã xảy ra với NVD3?
- 17. thay đổi định dạng ngày MySql
- 18. Thay đổi định dạng ngày trong ứng dụng ASP.NET MVC
- 19. Điều gì đã xảy ra với Android AAPT?
- 20. gì đã xảy ra vào ngày 31 Tháng 12 năm 1969 lúc 7:00 PM
- 21. Có thể xảy ra lỗi PHP với date_default_timezone_set và ngày?
- 22. Xác định xem tệp mở đã được sửa đổi trong C
- 23. Định dạng ngày thay đổi lịch đầy đủ ở chế độ xem theo tuần
- 24. Đã xảy ra lỗi khi hydrating tệp EDMX?
- 25. Android - Xử lý sự cố đã xảy ra
- 26. Điều gì xảy ra nếu tôi thay đổi ProductID của một ứng dụng WP đã tồn tại?
- 27. API Trello: xác định thời điểm một thẻ đã thay đổi danh sách?
- 28. Đã xảy ra lỗi khi thực hiện định nghĩa lệnh. Xem các ngoại lệ bên trong để biết chi tiết
- 29. Điều gì đã xảy ra với startx trên Cygwin?
- 30. Điều gì đã xảy ra với Project Volta?