2016-06-20 1 views
0

この問題を解決するには? これは私のコードです:Objective-C:迷惑 - 私はUILocalNotificationsから毎分約5-6の通知を受け取ります

NSDate *dateToSet = [NSDate dateWithTimeIntervalSinceNow:1.0]; 
NSString *message = @"Test notification"; 
UILocalNotification *warningNotification = [[UILocalNotification alloc] init]; 
warningNotification.fireDate = dateToSet; 
warningNotification.timeZone = [NSTimeZone defaultTimeZone]; 
warningNotification.alertBody = message; 
warningNotification.hasAction = NO; 
warningNotification.userInfo = nil; 
warningNotification.repeatInterval = NSCalendarUnitDay; 
warningNotification.soundName = nil; 
[[UIApplication sharedApplication] scheduleLocalNotification:warningNotification]; 

そして、私のAppDelegate.m(didFinishLaunchingWithOptions):

UIUserNotificationType types = UIUserNotificationTypeSound | UIUserNotificationTypeAlert; 
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; 
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; 

if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){ 
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; 
} 

[[UIApplication sharedApplication] scheduledLocalNotifications]; 
[application registerForRemoteNotifications]; 

enter image description here

+0

この行は何をしていますか? '[[UIApplication sharedApplication] scheduledLocalNotifications];'? – Avi

+0

実際、私はUILocalNotificationsを初めて使っています。これは私の新しいアプリで初めて使用しています。インターネット上のチュートリアルからこれらのコードを追加しました。 –

答えて

-1

オブジェクトはnilオブジェクトは、メソッドaddObserverのパラメータとして渡している場合、それが起こることがあります。セレクタ:名前:オブジェクト:、それは望ましくないすべてのシステムからの通知を受け取ることができます。

+0

これはNSDateによってユーザーに通知するローカル通知です。どのように追加できますか?ステップバイステップでお願いします... –

0
あなたはこのラインで、あなたの通知が将来的に1秒を発射するために、構成されているように見えます

NSDate * dateToSet = [NSDate dateWithTimeIntervalSinceNow:1.0];

そして、間隔をNSCalendarUnitDayに設定すると、1日で再開するように設定されます。代わりに、あなたは次の日のための通知を設定したい場合は、この試してみてください。

//Present the local notification at the specified time in the future 
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

//Next day 
NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 
dateComps.day = 1; 

NSDate *today = [NSDate date]; 
NSDate *futureDate = [cal dateByAddingComponents:dateComps toDate:today options:0]; 

notification.fireDate = futureDate; 

を下の行は、すべてのスケジュールのローカルの通知を取得していますが、任意の変数に配列を割り当てないでください。

[[UIApplication sharedApplication] scheduledLocalNotifications];あなたが本当にローカル通知の配列が必要な場合は

、これを試してみてください。

NSArray *localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]; 

私はそれが役に立てば幸い!

+0

あなたの答えをありがとうが、それは動作しません!この線は何ですか? notificationDate = futureDate;私はあなたの未来への私の通知にfireDateを設定しました。日付は正しいですか? warningNotification.fireDate = futureDate; –

+0

この配列はどこで使うべきですか? (localNotification)は、使用されていない変数を示します。 –

+0

@AlandKawa通知に将来の日付を割り当てるための回答を更新しました。 localNotifications配列についてのあなたの質問に関しては、配列に割り当てられなかったコード行を修正するためにそこに投げた。その行が必要ない場合は、単純に削除することができます。 – Sheamus

関連する問題