Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 Can';t与iCloud同步域_Ios_Objective C_Realm_Icloud_Cloudkit - Fatal编程技术网

Ios Can';t与iCloud同步域

Ios Can';t与iCloud同步域,ios,objective-c,realm,icloud,cloudkit,Ios,Objective C,Realm,Icloud,Cloudkit,我正在尝试将我的应用程序中的领域与iCloud/CloudKit同步,但没有成功 这是我的源代码: -(void)sync { NSURL *baseURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; if (baseURL) //iCloud is active { NSURL *serverURL = [NSURL URLWithString:@"

我正在尝试将我的应用程序中的领域与iCloud/CloudKit同步,但没有成功

这是我的源代码:

-(void)sync
{
    NSURL *baseURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

    if (baseURL) //iCloud is active
    {
        NSURL *serverURL = [NSURL URLWithString:@"http://myMacBookNwtworkIP:9080"]; //Realm Object Server is up and running at this URL
        RLMSyncCredential *usernameCredential = [RLMSyncCredential credentialWithUsername:@"myUsername"
                                                                                 password:@"myPassword"
                                                                                  actions:RLMAuthenticationActionsUseExistingAccount];
        RLMSyncCredential *iCloudCredential = [RLMSyncCredential credentialWithICloudToken:@"myiCloudToken"];

        [RLMSyncUser authenticateWithCredential:usernameCredential
                                  authServerURL:serverURL
                                   onCompletion:^(RLMSyncUser *user, NSError *error) {
                                       if (user) { //user recognized in my real object server
                                           // can now open a synchronized RLMRealm with this user
                                           RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
        /* CRASH AT THIS LINE! */          config.syncConfiguration = [[RLMSyncConfiguration alloc] initWithUser:user realmURL:serverURL];
                                           RLMRealm *realm = [RLMRealm realmWithConfiguration:config error:nil];// Any changes made to this Realm will be synced across all devices!
                                       } else if (error) {
                                           // handle error
                                           NSLog(@"error %@",error);
                                       }
                                   }];
    }
}
当我试图执行

config.syncConfiguration = [[RLMSyncConfiguration alloc] initWithUser:user realmURL:serverURL];
我得到这个错误

提供的URL()不是有效的域URL

我怎样才能解决它

此外,由于这是我第一次尝试在iCloud中保存内容,我应该如何使用
iCloudCredential
?事实上,如果我用它替换
usernamecdential
,那么
user
总是为零

我在这些链接中遵循了以下步骤:


  • 为了防止崩溃,有必要指定“realm”协议而不是“http”,如下所示

    config.syncConfiguration = [[RLMSyncConfiguration alloc] initWithUser:user realmURL:[NSURL URLWithString:@"realm://myMacBookNwtworkIP:9080"]];
    
    多亏了