Sto cercando di salvare un CloudKit record, ma sto ottenendo il seguente errore da cloudkit:Cloudkit: "Errore di salvataggio record di operazione di scrittura non consentita"
error saving record este es error: Error saving record <CKRecordID: 0x7fef15b5d2a0; 2:(_defaultZone:__defaultOwner__)> to server: WRITE operation not permitted
Ecco come sto cercando di salvare la cronaca:
[publicDatabase saveRecord:recordContent completionHandler:^(CKRecord *record, NSError *error){
if (!error)
{
NSLog(@"saved!!!");
}
else
{
if ([[error.userInfo valueForKey:@"ErrorDescription"] isEqualToString:@"record to insert already exists"])
{
NSLog(@"record already exist %@",[error.userInfo valueForKey:@"ErrorDescription"]);
}
NSLog(@"error saving record : %@",error.localizedDescription);
}
}];
Ma prima aveva verifico se cloudkit è disponibile:
[myContainer accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError *error)
{
NSLog(@" no error but status %ld",accountStatus);
if (((accountStatus == 3) || (accountStatus == 2)) && (!error))
{
NSLog(@" no error but status %ld",accountStatus);
// typedef NS_ENUM(NSInteger, CKAccountStatus) {
// /* An error occurred when getting the account status, consult the corresponding NSError */
// CKAccountStatusCouldNotDetermine = 0,
// /* The iCloud account credentials are available for this application */
// CKAccountStatusAvailable = 1,
// /* Parental Controls/Device Management has denied access to iCloud account credentials */
// CKAccountStatusRestricted = 2,
// /* No iCloud account is logged in on this device */
// CKAccountStatusNoAccount = 3,
//
// }
}
if (error)
{
NSLog(@" accountStatus error %@",error);
}
} ];
Dove sto ottenendo lo status 1, che significa CKAccountStatusAvailable.
Qualcuno sa perché questo sta accadendo ha funzionato bene fino all'ultimo record o qualcuno di voi conosce un lavoro intorno a questo?
Apprezzerò molto il vostro aiuto.
Stai salvando un nuovo record o aggiornando un record esistente? Se si sta aggiornando, è stato creato anche quel record (lo stesso id della mela). In caso contrario, vai alla dashboard di iCloud e imposta le autorizzazioni a quel recordType che tutti gli utenti possono aggiornare. –
Grazie per aver sottolineato che è necessario impostare le autorizzazioni per consentire l'eliminazione di record pubblici. –