SORU
16 AĞUSTOS 2009, Pazar


iphone Core kaydedilirken Çözülmemiş hata Veri

Kurtarmaya çalışırken temel verilerden garip bir hata mesajı alıyorum ama hata tekrarlanabilir olmadığı sorunu ( farklı görevleri yaparken farklı zamanlarda görünür)

hata iletisi:

Unresolved error Domain=NSCocoaErrorDomain Code=1560 UserInfo=0x14f5480 "Operation could not be completed. (Cocoa error 1560.)", {
NSDetailedErrors = (
Error Domain=NSCocoaErrorDomain Code=1570 UserInfo=0x5406d70 "Operation could not be completed. (Cocoa error 1570.)",
Error Domain=NSCocoaErrorDomain Code=1570 UserInfo=0x14f9be0 "Operation could not be completed. (Cocoa error 1570.)"
);
}

hata oluşturan bir yöntem

- (IBAction)saveAction:(id)sender {
    NSError *error;
    if (![[self managedObjectContext] save:&error]) {
        // Handle error
        NSLog(@"Unresolved error %@, %@, %@", error, [error userInfo],[error localizedDescription]);
        exit(-1);  // Fail
    }
}

bu mesajın sebebi hakkında fikrin var mı ? rastgele zamanlarda görünen vererek

CEVAP
18 AĞUSTOS 2009, Salı


Kendimi bir süre bununla mücadele ettim. Buradaki gerçek sorun var hata ayıklama sorunu gösteren değil. Bu nedenle bu çünkü CoreData koy dizisi NSError nesneleri "üst düzey" NSError nesnesi varsa birden fazla sorunu (Bu yüzden hata 1560 gösterir birden fazla sorunlar ve bir dizi hata 1570s). Görünen CoreData bir avuç tuşları kullanması için zula bilgilerinde hata verir varsa bir sorun, o size daha faydalı bir bilgi (örneğin varlık hata oluştu, ilişki/öznitelik eksik, vb.). Kullanıcı bilgisi sözlüğü incelemek için kullandığınız tuşları the reference docs here bulunabilir.

Bu hatayı bir kayıt sırasında iade makul bir çıktı almak için kullandığım kod bloğu

	NSError* error;
	if(![[survey managedObjectContext] 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]);
		}
	}

İle başa çıkmak için problem çözme önemli ölçüde kolaylaştıran eksik olan alanları söyleyen çıktı üretecektir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006