2009-09-23 6 views
-1

У меня есть NSArray строк, и я хочу создать новую CalTask ​​(для хранилища календарей) для каждой строки, я хочу, чтобы имя задачи было добавленной строкой , Приоритет и Срок выполнения должны быть установлены в коде.Добавление CalTasks из NSArray

Например, у меня есть массив со строками To-Do 1, TD 2, TD 3. Итак, я хочу создать 3 CalTasks, первый с именем To-Do 1, а второй с именем TD 2 и т. Д. Посмотрите, о чем я говорю. Но я хочу, чтобы все Приоритеты и Должные Даты были одинаковыми.

+2

Я ответил на ваш вопрос о коде примера 2 дня назад Http: // StackOverflow. ком/вопросы/1455497/с использованием-каландр-магазин/1455743 # 1455743. Вы получите лучшие ответы, если вы на самом деле попытались написать некоторые из них сами. – Abizern

+0

Хорошо. ОК. Я просто задавался вопросом, нужно ли мне делать что-то другое. – Joshua

ответ

2

Что вы можете сделать, это цикл по NSArray и создавать и добавлять новую CalTask ​​с заданным приоритетом и датами:

// 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

Он не работает, я не получаю ошибок в XCode, но после запуска Action в iCal все еще нет новых задач/to-dos. – Joshua

+0

Убедитесь, что вы выполняете обработку ошибок в отмеченной точке - если хранилище календарей не обновляется, в этом примере кода не будет сообщений. Также, возможно, добавьте больше инструкций 'NSLog()' во всем коде, чтобы увидеть, что происходит где. После того, как вы это сделали, предоставьте более подробную информацию о том, что именно не работает. – Tim

+0

Хорошо. Я поставил сообщение NSLog с сообщением «Ошибка», в которое вы помещаете '// Do error-handling'. И я получил 3 сообщения журнала с сообщением об ошибке, по одному для каждой строки в массиве. – Joshua

2

Посмотрите на Calendar Store Programming Guide.

+0

Он рассказывает вам, как создать задачу, но не специально с массивом. – Joshua

+2

Вы когда-нибудь программировали что-либо в Objective-C? –

+3

@Joshua: как трудно пройти через массив? Как трудно посмотреть пример кода о том, как создать задачу? http://bit.ly/nYcjp –

Смежные вопросы