#iphone #ios #calendar #google-calendar-api
#iPhone #iOS #Календарь #google-calendar-api
Вопрос:
Я взаимодействую с календарем Google, используя библиотеку GData в Objective-C на iOS 5. Я могу создавать повторяющиеся события, однако у меня возникают проблемы с добавлением исключений. Есть ли кто-нибудь, кто может предоставить полный, полностью рабочий фрагмент кода, показывающий, как использовать исключения для изменения сведений о событии? Кроме того, как мне исключить дату с помощью исключения? В документации говорится, что условия EXDATE соблюдаются при импорте событий из файла внешнего календаря, и я могу это подтвердить. Но в документах также говорится, что единственный способ изменить повторяющееся событие — это использовать исключения, а не само повторение (попытка повторения с помощью предложений EXDATE действительно, к сожалению, не работает). Итак, вопрос в следующем: как мне воспроизвести то же поведение предложения EXDATE, используя исключение? Из того, что я вижу в документации, я могу изменить только некоторые детали. Например, я могу изменить время определенного события, но вопрос в том, как вместо этого исключить одну или несколько дат? Возможно ли это вообще? Если нет, то ни одно приложение не может корректно синхронизироваться с Календарем Google, и я хотел бы получить подтверждение об этом. Если ответ положительный, пожалуйста, дайте мне знать, как это сделать. Заранее благодарю вас и с наилучшими пожеланиями.
Ответ №1:
Я недостаточно хорошо знаю Objective-C, чтобы предоставить вам рабочий код… но эта информация дает вам хорошую отправную точку, ИМХО:
да — это возможно и поддерживается Календарем Google … просто создайте отмененное событие с originalEvent
указанием на повторяющееся событие … другим вариантом было бы создать повторяющееся событие напрямую с помощью одной или нескольких записей EXDATE в списке recurrency[]
Важный момент, однако:
Вы пишете, что хотите пример GData — для Google Calendar GData API был заменен новым JSON API — некоторый код Objective-C смотрите, например http://code.google.com/p/google-api-objectivec-client/source/browse/trunk/Examples/CalendarSample/EditEventWindowController.m
Комментарии:
1. Первое решение, которое вы предоставляете, является правильным, проверено инженерами Google. Предложения EXDATE о повторении игнорируются. Однако это не работает с Objective-C XML API, который неисправен. Это может работать с новыми API Objective-C на основе JSON… Я попробую это, даже если это означает переписывание всего исходного кода, взаимодействующего с Календарем Google.
Ответ №2:
Все, что я знаю, это то, что собственный календарь Apple для iOS, похоже, не может заставить Google Calendar корректно принимать исключения для повторяющихся событий, поэтому либо что-то сломано на стороне Google, либо это трудно сделать правильно.
Комментарии:
1. Вы правы, то же самое происходит при программном взаимодействии с Календарем Google, и это мотивировало мой вопрос.
Ответ №3:
Я некоторое время искал то, что вы просили, «полный, полностью рабочий фрагмент кода, показывающий, как использовать исключения для изменения сведений о происшествии», и, к сожалению, должен сказать, что не смог найти ничего, что отвечало бы непосредственно вашим проблемам, но я нашел две вещи, которые МОГЛИ бы помочь.
Первый — это ссылка на класс, и если вы нажмете на второй, это простой дополнительный класс для работы со спецификациями повторяемости Календаря Google.
Комментарии:
1. Первое, что относится к календарю iOS. Вместо этого я спросил, как добавить исключения в Календарь Google, но с использованием API Google Calendar. Вторая вещь, которую вы включили в свой ответ, касается повторений и даже включает предложения EXDATE. Однако эта вещь сломана и никогда не работала с исключениями. Я пробовал это давным-давно, но безуспешно. Именно этот код заставил меня спросить, как правильно добавлять исключения в Календарь Google.
2. Что ж, извините, я ничем не могу помочь: (Я просмотрел все подряд … больше ничего не нашел