Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios CloudKit:查询订阅请求_Ios_Objective C_Cloudkit_Cksubscription - Fatal编程技术网

Ios CloudKit:查询订阅请求

Ios CloudKit:查询订阅请求,ios,objective-c,cloudkit,cksubscription,Ios,Objective C,Cloudkit,Cksubscription,我正在使用CloudKit在应用程序中工作,并且正在创建对CloudKit的订阅。这是我的密码: CKSubscription *subscription = [[CKSubscription alloc] initWithRecordType:recordType predicate:predicate

我正在使用CloudKit在应用程序中工作,并且正在创建对CloudKit的订阅。这是我的密码:

CKSubscription *subscription = [[CKSubscription alloc]
                                initWithRecordType:recordType
                                predicate:predicate
                                options:CKSubscriptionOptionsFiresOnRecordCreation |
                                CKSubscriptionOptionsFiresOnRecordUpdate |
                                CKSubscriptionOptionsFiresOnRecordDeletion];


CKNotificationInfo *notificationInfo = [CKNotificationInfo new];
notificationInfo.shouldSendContentAvailable = YES;
subscription.notificationInfo = notificationInfo;
notificationInfo.shouldBadge = YES;
CKDatabase *publicDatabase = [container publicCloudDatabase];
[publicDatabase saveSubscription:subscription
               completionHandler:^(CKSubscription *subscription, NSError *error) {
                   if (!error)
                   {
                       NSLog(@"subscription success!");
                   }
                   else
                   {
                       NSLog(@"subscription  error%@", error.localizedDescription);
                   }

               }];

我想问你们一个问题。如何查询或验证用户对CloudKit的订阅

订阅只不过是一个在服务器端而不是应用程序中活动的CKPredicate。如果要验证谓词是否正确,那么只需将其作为查询执行,然后查看返回的结果

确保应用程序difFinishLaunchingWithOptions具有以下代码行:

    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Badge | .Sound, categories: nil))
    application.registerForRemoteNotifications()
还要确保通过添加以下内容来处理传入通知:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
    NSLog("Push received.. Should be handled..")
}

嗨,埃德温弗米尔。我试过你的想法,谓词在tableview中正常工作,但在订阅中却不行。我怀疑这是我的订阅设置,因为我可以得到一个真正的谓词来工作。我的谓词涉及对当前用户的CKReference,在这里我希望获得其他用户在当前用户的post上发表评论的通知-
let predicate=NSPredicate(格式:“user!=%@和userIDForPost=%@”,argumentArray:[userRef,userRef])
。userRef是当前用户的ID,“user”是对其他用户的引用,userIDForPost是对当前用户的引用。非常感谢您的帮助。我在答案中添加了一些信息。有吗?除此之外,您是否在设备上登录到iCloud?是的,我在AppDelegate中有这些方法。该设备使用另一个用户的帐户登录到iCloud。然后我进入仪表板,创建新的记录,以匹配我自己帐户下的谓词,我想这就是苹果建议的方式。在过去的几个月里,我尝试了很多东西,我开始怀疑这是否是一个bug。非常感谢你的帮助@埃德温弗米尔。