2012-01-28 18 views
2

毎日午前12時01分にローカル通知を発射しようとしていますが、コードが機能しない理由はわかりません。問題を見つけるのを手伝ってくれませんか?iOS特定の時間に毎日ローカル通知を送信する

local = [[UILocalNotification alloc]init]; 

NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSPersianCalendar]; 
NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 

//edited: 
[dateComps setYear:1390]; //2012 
[dateComps setMonth:10]; //1 
[dateComps setDay:9]; //29 

local.repeatInterval = 5; 

[dateComps setHour:00]; 
[dateComps setMinute:1]; 
[dateComps setSecond:00]; 


local.fireDate = [calendar dateFromComponents:dateComps]; 
local.alertBody = @"HELLO"; 
local.alertAction = @"View"; 
local.applicationIconBadgeNumber = 1; 
[[UIApplication sharedApplication]scheduleLocalNotification:local]; 

答えて

3

通知のrepeatIntervalプロパティを設定しておらず、日付コンポーネントに月、年、日がありません。デフォルトはゼロですので、fireDateは過去に戻っています。

また、NSPersianCalendarの代わりにNSGregorianCalendarを使用することもできます。

+0

日付と時刻はペルシャのカレンダーに基づいているので、私は自分の日付にNSPersianCalendarを宣言し、年月日と月を追加し、 'repeatInterval'を編集コードにしてください: –

+1

' repeatInterval'は整数ではなく、 'NSDayCalendarUnit'のような' NSCalendarUnit'があります。また、ペルシャのカレンダーを使っているので、通知の 'repeatCalendar'を設定する必要があるかもしれません(私はこれについての経験はありません)。 – omz

+0

NSGregorianCalendarのサンプルコードを書いてください。私はそれをペルシア語に変換することができます、 –

関連する問題