简体   繁体   English

无法保存到数据存储:无法完成操作。 (可可错误133020.)

[英]Failed to save to data store: The operation couldn’t be completed. (Cocoa error 133020.)

I am working on quite complex app with huge sync procedure beetwen iphone and web server. 我正在研究相当复杂的应用程序与巨大的同步程序beetwen iphone和web服务器。 I have no troubles with adding records, until I run sync procedure in separete thread, and It will update data on serwer, and send them back to iphone. 我没有添加记录的麻烦,直到我在separete线程中运行同步程序,它将更新serwer上的数据,并将它们发送回iphone。 But after this procedure, inserting new data cause error, such as this: 但是在这个过程之后,插入新数据会导致错误,例如:

2011-01-07 12:49:10.722 App[1987:207] Failed to save to data store: The operation couldn’t be completed. (Cocoa error 133020.)
2011-01-07 12:49:10.724 App[1987:207]   {
    conflictList =     (
        "NSMergeConflict (0x5ac1ea0) for NSManagedObject (0x5a2d710) with objectID '0x5a27080 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/uzytkownicy/p10>' with oldVersion = 9 and newVersion = 21 and old object snapshot = {\n    adres = \"<null>\";\n    haslo = xxxxxxxxxxxxxxxxxxxxxx;\n    \"id_uzytkownika\" = 3;\n    imie = Jan;\n    \"kod_jednorazowy\" = 0;\n    komorka = \"<null>\";\n    login = nowakjan;\n    nazwisko = Nowak;\n    pesel = 0;\n    rodzaj = 2;\n    \"stan_konta\" = 0;\n    telefon = \"<null>\";\n    \"uzytkownicy_uczniowie\" = \"<null>\";\n    \"zmienna_losowa\" = 8G9e1;\n} and new cached row = {\n    adres = \"<null>\";\n    haslo = xxxxxxxxxxxxxxxxxxxxxx;\n    \"id_uzytkownika\" = 3;\n    imie = Jan;\n    \"kod_jednorazowy\" = 0;\n    komorka = \"<null>\";\n    login = nowakjan;\n    nazwisko = Nowak;\n    pesel = 0;\n    rodzaj = 2;\n    \"stan_konta\" = 0;\n    telefon = \"<null>\";\n    \"uzytkownicy_uczniowie\" = \"<null>\";\n    \"zmienna_losowa\" = 8G9e1;\n}",
        "NSMergeConflict (0xd266990) for NSManagedObject (0xcd05950) with objectID '0x5a453b0 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/uczniowie/p125>' with oldVersion = 5 and newVersion = 10 and old object snapshot = {\n    adres = \"Warszawa; ul. Lwowska 32\";\n    \"data_urodzenia\" = \"1997-02-01 23:00:00 +0000\";\n    dysfunkcje = \"\";\n    email = \"<null>\";\n    frekwencja = 0;\n    \"id_ucznia\" = 86;\n    imie2 = Marian;\n    \"imie_ucznia\" = \"S\\U0142awomir\";\n    klasa = \"0x5a47820 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/zespoly/p9>\";\n    komorka = \"<null>\";\n    \"miejsce_urodzenia\" = Warszawa;\n    \"nazwisko_ucznia\" = \"S\\U0142awek\";\n    \"numer_ewidencyjny\" = 20;\n    opiekun1 = \"Mariusz S\\U0142awek\";\n    opiekun2 = \" \";\n    pesel = 97020298919;\n    plec = 1;\n    telefon = 890000002;\n    \"uzytkownicy_uczniowie\" = \"<null>\";\n    \"web_klasa\" = 50;\n} and new cached row = {\n    adres = \"Warszawa; ul. Lwowska 32\";\n    \"data_urodzenia\" = \"1997-02-01 23:00:00 +0000\";\n    dysfunkcje = \"\";\n    email = \"<null>\";\n    frekwencja = 0;\n    \"id_ucznia\" = 86;\n    imie2 = Marian;\n    \"imie_ucznia\" = \"S\\U0142awomir\";\n    klasa = \"0x5a8e7c0 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/zespoly/p9>\";\n    komorka = \"<null>\";\n    \"miejsce_urodzenia\" = Warszawa;\n    \"nazwisko_ucznia\" = \"S\\U0142awek\";\n    \"numer_ewidencyjny\" = 20;\n    opiekun1 = \"Mariusz S\\U0142awek\";\n    opiekun2 = \" \";\n    pesel = 97020298919;\n    plec = 1;\n    telefon = 890000002;\n    \"uzytkownicy_uczniowie\" = \"<null>\";\n    \"web_klasa\" = 50;\n}",
        "NSMergeConflict (0xd2669b0) for NSManagedObject (0x5a44480) with objectID '0x5a47830 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/przedmioty/p12>' with oldVersion = 7 and newVersion = 15 and old object snapshot = {\n    \"id_przedmiotu\" = 1;\n    \"nazwa_przedmiotu\" = Historia;\n    \"skrot_nazwy\" = Hist;\n} and new cached row = {\n    \"id_przedmiotu\" = 1;\n    \"nazwa_przedmiotu\" = Historia;\n    \"skrot_nazwy\" = Hist;\n}"
    );
}

I've been looking for any solution but without luck. 我一直在寻找任何解决方案,但没有运气。

Thank You in advance for any usefull help. 提前感谢您提供任何有用的帮助。


    oceny_ucznia *nowaOcenka = (oceny_ucznia *)[NSEntityDescription insertNewObjectForEntityForName:@"oceny_ucznia" inManagedObjectContext:[Factory getVar:@"context"]];

    nowaOcenka.przedmiot                = (przedmioty *) [Factory getVar:@"cPrzedmiot"];
    nowaOcenka.web_przedmiot            = [NSNumber numberWithInt:[((przedmioty *)[Factory getVar:@"cPrzedmiot"]).id_przedmiotu intValue]];
    nowaOcenka.nauczyciel               = (uzytkownicy *)[Factory getVar:@"cNauczyciel"];
    nowaOcenka.web_nauczyciel           = [NSNumber numberWithInt:[((uzytkownicy *)[Factory getVar:@"cNauczyciel"]).id_uzytkownika intValue]];
    nowaOcenka.lekcja                   = (lekcje *)[Factory getVar:@"cLekcja"];
    nowaOcenka.uczen                    = uczeniek;
    nowaOcenka.web_uczen                = [NSNumber numberWithInt:[uczeniek.id_ucznia intValue]];
    nowaOcenka.czas_wpisania            = [NSDate date];

    if ( grupka != nil ) {
        nowaOcenka.grupa                = grupka;
        nowaOcenka.web_grupa            = [NSNumber numberWithInt:[grupka.id_grupy_ocen intValue]];
        nowaOcenka.kolumna              = [NSNumber numberWithInt:([kolumienka intValue]+1)];
        nowaOcenka.grupa.czas_wpisania  = [NSDate date];
    } else {
        int wartoscOceny                = [[Factory getVar:@"cSemestr"] intValue];
        wartoscOceny                   += ( [kolumienka intValue]==0 ) ? 2 : 0;
        nowaOcenka.koncowa              = [NSNumber numberWithInt:wartoscOceny];
    }

    nowaOcenka.wartosc                  = [NSNumber numberWithFloat:[[((slownik_ocen *)[self.slownikOcen objectAtIndex:[ocena selectedRowInComponent:0]]) wartosc_liczbowa] floatValue]];
    nowaOcenka.ocena                    = [NSString stringWithFormat:@"%@",[((slownik_ocen *)[self.slownikOcen objectAtIndex:[ocena selectedRowInComponent:0]]) ocena_opis]];
    nowaOcenka.semestr                  = [NSNumber numberWithInt:[[Factory getVar:@"cSemestr"] intValue]];

    ((lekcje *)[Factory getVar:@"cLekcja"]).czas_wpisania = [NSDate date];

    NSError* error;
if(![[Factory getVar:@"context"] save:&error]) {
        NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
        NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
        if(detailedErrors != nil && [detailedErrors count] > 0) {
            for(NSError* detailedError in detailedErrors) {
                NSLog(@"  DetailedError: %@", [detailedError userInfo]);
            }
        }
        else {
            NSLog(@"  %@", [error userInfo]);
        }
}

Factory class is described here , but probablly there is a problem with a context that is not refreshed accurately after sync procedure. 这里描述工厂类,但可能的是,在同步过程之后没有准确刷新的上下文存在问题。

According to: 根据:

http://developer.apple.com/library/ios/#documentation/cocoa/Reference/CoreDataFramework/Miscellaneous/CoreData_Constants/Reference/reference.html http://developer.apple.com/library/ios/#documentation/cocoa/Reference/CoreDataFramework/Miscellaneous/CoreData_Constants/Reference/reference.html

that error is NSManagedObjectMergeError : 该错误是NSManagedObjectMergeError

Error code to denote that a merge policy failed—Core Data is unable to complete merging. 错误代码表示合并策略失败 - Core Data无法完成合并。

The NSError object may be able to help in decoding this error. NSError对象可能有助于解码此错误。 Can you post the code you are using to insert the new data? 你可以发布用于插入新数据的代码吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 “这项行动无法完成。 (可可错误512.)“ - “The operation couldn’t be completed. (Cocoa error 512.)” 该操作无法完成。 (可可错误1560.) - The operation couldn’t be completed. (Cocoa error 1560.) 该操作无法完成。 (MKErrorDomain错误4) - The operation couldn’t be completed. (MKErrorDomain error 4) ionic无法加载网页,并显示以下错误:操作无法完成。 (NSURLErrorDomain错误-999。) - ionic failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.) Facebook对话框失败并显示错误:无法完成操作。 (NSURLErrorDomain错误-999。) - Facebook dialog failed with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.) 该操作无法完成。 不允许操作 - The operation couldn’t be completed. Operation not permitted 该操作无法完成。 (可可错误512.)Coredata Iphone。 没有文件可以复制到文档文件夹中 - The operation couldn’t be completed. (Cocoa error 512.) Coredata Iphone. No files can be copied in documents folder DBRequest#connectionDidFinishLoading:将临时文件移动到所需位置时出错:无法完成操作。 (可可错误4.) - DBRequest#connectionDidFinishLoading: error moving temp file to desired location: The operation couldn’t be completed. (Cocoa error 4.) didFailWithError:错误域= kCLErrorDomain代码= 0“无法完成操作。 (kCLErrorDomain错误0。)“ - didFailWithError: Error Domain=kCLErrorDomain Code=0 “The operation couldn’t be completed. (kCLErrorDomain error 0.)” 该操作无法完成。 (com.facebook.sdk.login错误301。) - The operation couldn’t be completed. (com.facebook.sdk.login error 301.)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM