2014-11-29 4 views
4

Мне удается сохранять, изменять и удалять записи в Apples CloudKit. Я даже получил уведомления, работающие с подписками, что я не могу узнать, как я могу перечислять все подписки для текущего пользователя.CloudKit получает все подписки от текущего пользователя

Вот мой код до сих пор:

let operation = CKFetchSubscriptionsOperation() 
operation.fetchSubscriptionCompletionBlock = { (d, e) -> Void in 
    println("got subscription") 
    if e != nil { 
     println("Error") 
     dump(e) 
    } 
    dump(d) 
} 
publicDatabase.addOperation(operation) 

То, что я получил это:

got subscription 
Error 
- <CKError 0x14db0ed0: "Invalid Arguments" (12)> #0 
- 0 key/value pairs 

Какие Неверные аргументы? И как мне получить список всех сохраненных подписчиков?

ответ

8

Если вы хотите сделать что-то с вашей подписки, то вы могли бы использовать что-то вроде этого:

var database = CKContainer.defaultContainer().publicCloudDatabase 
database.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in 
     for subscriptionObject in subscriptions { 
      var subscription: CKSubscription = subscriptionObject as CKSubscription 
      .. 
     } 
    } 
+0

Большое спасибо. Эти строки спасают мой день, Эдвин. –

+0

Добро пожаловать :-) –

+0

@EdwinVermeer, знаете ли вы, как получать подписки в Objective-C? – user2924482

1

Я не пробовал это, но пока по docs; fetchAllSubscriptionsOperation() получит все подписки для пользователя в текущей базе данных, тогда для этого необходимо присвоить значение этого вызова fetchSubscriptionCompletionBlock. Отрегулировать следующую строку кода:

let operation = CKFetchSubscriptionsOperation.fetchAllSubscriptionsOperation() 

Quick Help Notes

fetchAllSubscriptionsOperation

Опять же, согласно документации fetchAllSubscriptionsWithCompletionHandler будет получать все подписки на текущую базу данных:

fetchAllSubscriptionsWithCompletionHandler-help

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