0

このチュートリアルに従おうとしていますが、最初にエラーが発生しますif (err = noErr) {

これは私のコードです:

#import "CalendarViewController.h"
#import <EventKit/EventKit.h>

@interface CalendarViewController ()

@end

@implementation CalendarViewController

-(IBAction) createEvent {

EKEventStore *eventStore = [[EKEventStore alloc ] init];

EKEvent *event = [EKEvent eventWithEventStore:eventStore];

NSDate *startDate = [[NSDate alloc] init];
NSDate *endDate = [[NSDate alloc] init];

event.title = @"Title for new event";
event.startDate = startDate;
event.endDate = endDate;
event.allDay = YES;

[event setCalendar: [eventStore defaultCalendarForNewEvents]];

NSError *err;


[eventStore saveEvent:event span:EKSpanThisEvent error:&err];
if (err == noErr) {

    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Event Created"
                          message:@"How about that?"
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];

        [alert show];
        [alert release];
}

[startDate release];
[endDate release];
[eventStore release];
}

私はこれの初心者で、HSC の一部ですが、適切に動作していません。助けていただければ幸いです。

4

1 に答える 1

1

現在受け入れられている答えは少し誤解を招くものです。

を返し、NSError オブジェクトへの間接参照を含む Cocoa のメソッドがある場合BOOL、エラー オブジェクトをチェックする前に戻り値をチェックする必要がNOあります。

NSError *err;

BOOL success = [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
if (success) {

    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Event Created"
                          message:@"How about that?"
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];

        [alert show];
        [alert release];
} else {
    if (!err) {
        // If the event is not modified then the return is `NO` and there is no error
        UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Event Unchanged"
                          message:@"The event wasn't modified, so there is nothing to save."
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];

        [alert show];
        [alert release];
    } else {
        // The method was unsuccessful and there is a valid error
        NSString *errorMessage = [NSString stringWithFormat:@" Unable to save because: %@", [err localizedDescription];
        UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Error!"
                          message:errorMessage"
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];

        [alert show];
        [alert release];
    }
}

私が実際に行う方法よりも少し言葉が多いですが、アイデアを得る必要があります

于 2013-08-24T13:41:11.523 に答える