2011-11-04 30 views
9

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

13

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.

0

tôi có lẽ muốn làm hai việc:

  1. 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.

  2. 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.

1

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.

7

Như đã đề cập trong other thread, kể từ iOS8, bạn cũng có thể nghe trực tiếp NSCalendarDayChangedNotification.

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