2009-09-23 10 views
-1

J'ai un NSArray de Strings et ce que je veux faire est de créer une nouvelle CalTask ​​(pour le calendrier) pour chaque String, je veux que le Nom de la tâche soit la chaîne qui est ajoutée , la priorité et la date d'échéance à définir dans le code.Ajout de CalTasks à partir d'un NSArray

Par exemple, j'ai un tableau avec les chaînes To-Do 1, TD 2, TD 3. Donc je veux créer 3 CalTasks, le premier avec le nom To-Do 1 et le second avec le nom TD 2 etc. Voyez de quoi je parle. Mais je veux que toutes les priorités et les échéances soient les mêmes.

+2

Je répondu à votre question sur le code d'exemple il y a 2 jours http: // stackoverflow. com/questions/1455497/using-calender-store/1455743 # 1455743. Vous obtiendrez de meilleures réponses si vous avez réellement essayé d'en écrire vous-même. – Abizern

+0

Ok. D'accord. Je me demandais juste si je devais faire quelque chose de différent. – Joshua

Répondre

2

Qu'est-ce que vous pouvez faire est en boucle sur le NSArray et créer et ajouter une nouvelle CalTask ​​avec une priorité prédéfinie et la date d'échéance:

// Set up the array 
NSArray *array = [NSArray arrayWithObjects:@"TD1", @"TD2", @"TD3", nil]; 

// Get the calendar 
CalCalendarStore *store = [CalCalendarStore defaultCalendarStore]; 
CalCalendar *calendar = [[store calendars] objectAtIndex:0]; 
// Note: you can change which calendar you're adding to by changing the index or by 
// using CalCalendarStore's -calendarWithUID: method 

// Define priority and due date 
NSDate *dueDate = [NSDate date];    // By default due now - change as needed 
CalPriority priority = CalPriorityMedium;  // By default medium - change as needed 

// Loop, adding tasks 
for(NSString *title in array) { 
    // Create task 
    CalTask *task = [CalTask task]; 
    task.dueDate = dueDate; 
    task.priority = priority; 
    task.title = title; 
    task.calendar = calendar; 

    // Save task 
    NSError *error = nil;     
    if(![store saveTask:task error:&error]) { 
     // Diagnostic error handling 
     NSAlert *anAlert = [NSAlert alertWithError:error]; 
     [anAlert runModal]; 
    } 
}
+0

Cela ne semble pas fonctionner, je ne reçois aucune erreur dans XCode, mais après le déclenchement de l'Action, il n'y a toujours pas de nouvelles tâches/tâches à faire dans iCal. – Joshua

+0

Assurez-vous que vous effectuez la gestion des erreurs au point marqué - si le magasin de calendrier n'est pas mis à jour, cet exemple de code ne produira aucun message. Également ajouter éventuellement plus d'instructions 'NSLog()' dans le code pour voir ce qui se passe où. Une fois que vous avez fait cela, s'il vous plaît fournir des informations plus précises sur ce qui ne fonctionne pas exactement. – Tim

+0

Ok. J'ai mis un message NSLog disant Error où vous mettez '// Do error-handling'. Et j'ai eu 3 messages de Log indiquant l'erreur, un pour chaque chaîne dans le tableau. – Joshua

2
+0

Il vous indique comment créer une tâche, mais pas spécifiquement avec un tableau. – Joshua

+2

Avez-vous déjà programmé quelque chose en Objective-C? –

+3

@Joshua: est-ce difficile de faire une boucle dans un tableau? Est-ce difficile de regarder l'exemple de code sur la façon de créer une tâche? http://bit.ly/nYcjp –

Questions connexes