0

我尝试了很多博客,但由于某种原因它没有触发!

难道是因为我没有征求许可?我想问用户本地吗?我从苹果的文档中了解到我没有。

这是我的单人班(检查它被称为 - 带断点)

    //
//  «FILENAME»
//  «PROJECTNAME»
//
//  Created by «FULLUSERNAME» on «DATE».
//  Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
//  File created using Singleton XCode Template by Mugunth Kumar (http://mugunthkumar.com
//  Permission granted to do anything, commercial/non-commercial with this file apart from removing the line/URL above

#import "NotifierSingelton.h"

static NotifierSingelton* _instance;

@implementation NotifierSingelton

+ (NotifierSingelton*)sharedInstance
{
    @synchronized(self) {

        if (_instance == nil) {

            // iOS 4 compatibility check
            Class notificationClass = NSClassFromString(@"UILocalNotification");

            if(notificationClass == nil)
            {
                _instance = nil;
            }
            else
            {
                _instance = [[super allocWithZone:NULL] init];

            }


            // Allocate/initialize any member variables of the singleton class her
            // example
            //_instance.member = @"";
        }
    }
    return _instance;
}

- (void) scheduleNotificationOn:(NSDate*) fireDate
                           text:(NSString*) alertText
                         action:(NSString*) alertAction
                          sound:(NSString*) soundfileName
                    launchImage:(NSString*) launchImage
                        andInfo:(NSDictionary*) userInfo

{
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.fireDate = fireDate;
    localNotification.timeZone = [NSTimeZone defaultTimeZone];  

    localNotification.alertBody = alertText;
    localNotification.alertAction = alertAction;    

    if(soundfileName == nil)
    {
        localNotification.soundName = UILocalNotificationDefaultSoundName;
    }
    else
    {
        localNotification.soundName = soundfileName;
    }

    localNotification.alertLaunchImage = launchImage;

    //self.badgeCount ++;
    localNotification.applicationIconBadgeNumber = 1;
    localNotification.userInfo = userInfo;

    // Schedule it with the app
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];
}


#pragma mark Singleton Methods

+ (id)allocWithZone:(NSZone *)zone
{   
    return [[self sharedInstance]retain];   
}


- (id)copyWithZone:(NSZone *)zone
{
    return self;    
}

- (id)retain
{   
    return self;    
}

- (unsigned)retainCount
{
    return NSUIntegerMax;  //denotes an object that cannot be released
}

- (void)release
{
    //do nothing
}

- (id)autorelease
{
    return self;    
}

@end
4

1 回答 1

0

我真的看不出你的代码有什么问题。确保你的 firedate 不为空。这是我的一个应用程序的工作代码:

notif = [[UILocalNotification alloc] init];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *raceDate = [df dateFromString:[raceDates objectAtIndex:i]]; 
notif.fireDate = raceDate;
notif.timeZone = [NSTimeZone timeZoneWithName:@"WAT"];

notif.alertBody = NSLocalizedString(@"NotificationBody", @"");
notif.alertAction = NSLocalizedString(@"NotificationButton", @"");
notif.soundName = @"push.aif";

[[UIApplication sharedApplication] scheduleLocalNotification:notif];
[notif release];

另外,我不确定是否需要,但您的应用可能需要启用多任务处理。

于 2011-03-29T01:06:26.927 回答