2013-02-06 4 views
0

J'ai une classe NSObject personnalisée dans laquelle je déclare les attributs et fonctions suivants.Classe NSObject personnalisée avec EKEventAttribute

@property (nonatomic, retain, readonly) NSDate *date; 
@property (nonatomic, retain, readonly) NSString *dateTime; 
@property (nonatomic, retain, readonly) NSString *title; 
@property (nonatomic, retain, readonly) EKEvent *event; 

+(Appointment*)AppointmentNamed: (NSString *)title 
         dateTime:(NSString *)dateTime 
          date:(NSDate *)date 
          event:(EKEvent *)event; 

-(id) initWithName:(NSString *)title 
      dateTime:(NSString *)dateTime 
       date:(NSDate *)date 
      event:(EKEvent *)event; 

Dans mon .m je fais ce qui suit.

+(Appointment*)AppointmentNamed:(NSString *)aTitle 
         dateTime:(NSString *)aDateTime 
          date:(NSDate *)aDate 
          event:(EKEvent *)aEvent { 
    return [[Appointment alloc]initWithName:aTitle 
            dateTime:aDateTime 
             date:aDate 
             event:aEvent]; 
} 
-(id)initWithName:(NSString *)aTitle 
     dateTime:(NSString *)aDateTime 
      date:(NSDate *)aDate 
      event:(EKEvent *)aEvent{ 
    if((self = [super init])){ 
     date = [aDate copy]; 
     dateTime = [aDateTime copy]; 
     title = [aTitle copy]; 
     event = [aEvent copy]; 

    } 
    return self; 
} 

J'ajoute un nouveau rendez-vous de la façon suivante.

[appointments addObject:[Appointment AppointmentNamed:event.title 
              dateTime:dateString 
               date:event.endDate 
               event:event]]; 

Mais quand je fais cela, je reçois une erreur qui se plaint -[EKEvent copyWithZone:]:

Quelqu'un peut-il me aider?

Cordialement.

+0

juste une conjecture sauvage, mais avez-vous essayé de nommer votre propriété autre que .event? Voir ces 2 questions: [Question 1] (http://stackoverflow.com/questions/6644522/something-copywithzone-unrecognized-selector-sent-to-instance-when-using-b) [Question 2] (http://stackoverflow.com/questions/10784207/uilabel-copywithzone-unrecognized-selector-sent-to-instance) – jhilgert00

Répondre

0

Le paramètre de disponibilité pour l'événement. Ce paramètre est utilisé par les serveurs CalDAV et Exchange pour indiquer comment l'événement doit être traité à des fins de planification.Si le calendrier de l'événement ne prend pas en charge les paramètres de disponibilité, la valeur de cette propriété est EKEventAvailabilityNotSupported.

Voir ce lien EKEventAvailability et aussi celui EKEvent

J'espère que cela est utile pour vous ...

+0

@Pas Joshi, merci de votre réponse mais en changeant (nonatomic, retain, readonly) à (readwrite, retain) a fait le tour! – Steaphann

+0

maintenant son fonctionnement ?? –

+1

Oui, maintenant ça marche;) – Steaphann

0

vous pouvez copier seul objet qui ont mis en œuvre le protocole NSCopying (par exemple NSDate). EKEvent n'a pas implémenté le protocole NSCopying, donc vous ne pouvez pas créer une instance EKEvent en utilisant la copie. Mai il est utile de rendre la propriété d'événement readwrite de sorte que vous ne devez pas utiliser la copie.

Questions connexes