Programim dhe zhvillim, javascript, python, php, html

Dështon përditësimi i të dhënave bazë

-(void)passDataBack:(PersonHolder *)contact{
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstName == %@",contact.firstName];
    [request setPredicate:predicate];
    NSError *error;
    Person *person = [[self.managedObjectContext executeFetchRequest:request error:&error]lastObject];
    [person.firstName setValue:contact.firstName forKey:@"fistName"];
    [person.lastName setValue:contact.lastName forKey:@"lastName"];

    if(![self.managedObjectContext save:&error]){

        NSLog(@"Could not save edited data");
    }

}

gjatë kohës së ekzekutimit mund të shoh që contact është i ngarkuar me të gjitha të dhënat nëpër të cilat po kaloj, por entiteti im personal nuk po përditësohet.

Pashë përgjigjen si të përditësohen vlerat e futura të të dhënave bazë dhe mendoj Sigurisht që më mungon diçka


  • Personi *person = [[self.managedObjectContext executeFetchRequest:gabim i kërkesës:&error]lastObject]; --› gabim kontrolli 15.12.2015
  • Kodi juaj për përditësimin e objektit person duket i gabuar. Pse po përditësoni një veçori fistName (sic) të pronës firstName duke përdorur KVC? E njëjta gjë për lastName? 15.12.2015
  • Gabimi @vaibby është zero 15.12.2015
  • gabimi është zero. Prisni cfare eshte sic? firstName është atributi dhe unë jam duke përdorur vlerën në contact.firstName. 15.12.2015
  • duke përdorur person.firstName = contact.firstName nuk funksionon as. personi.firstName po shfaqet zero në kohën e ekzekutimit. 15.12.2015

Përgjigjet:


1

Nuk ju mungon asgjë, përkundrazi

Të dhënat thelbësore ekuivalente me përcaktuesin e thjeshtë të vetive

person.firstName = contact.firstName

is

[person setValue:contact.firstName forKey:@"firstName"];
[person setValue:contact.lastName forKey:@"lastName"];

merrni parasysh edhe gabimin e shtypit @"fistName"

Ndrysho: Provo këtë sintaksë

NSArray *people = [self.managedObjectContext executeFetchRequest:request error:&error];
if (error) {
    NSLog(@"%@", error);
    return;
}
if (people.count) {
    Person *person = [people lastObject];
    person.firstName = contact.firstName;
    person.lastName = contact.lastName;

    if(![self.managedObjectContext save:&error]){
       NSLog(@"Could not save edited data");
    }
} else {
    NSLog(@"result array is empty"):
}
15.12.2015
  • A është bosh grupi i kthyer nga kërkesa për marrjen? Thjesht thirrja lastObject në një grup bosh kthen nil 15.12.2015
  • mirë që tregon 0x0 për çdo fushë (nuk e di se si quhen) thjesht shikoni lidhjen ‹postimg. org/image/z1gvxwzgr 15.12.2015
  • Përditësova përgjigjen për të sugjeruar një sintaksë më të besueshme 15.12.2015
  • E prisha metodën time të kallëzuesit. Po krahasoj vlerën e vjetër me vlerën e re të përditësuar në contact, kështu që ato nuk do të përputhen kurrë. 15.12.2015

  • 2

    Në vend të

    [person.firstName setValue:contact.firstName forKey:@"firstName"];
    [person.lastName setValue:contact.lastName forKey:@"lastName"];
    

    përdorni

    [person setValue:contact.firstName forKey:@"firstName"];
    [person setValue:contact.lastName forKey:@"lastName"];
    

    or

    person.firstName = contact.firstName;
    person.lastName = contact.lastName;
    

    Redakto: një sugjerim përpara se të caktoni verbërisht objektin e fundit të pyetjes së tërheqjes tek objekti i personit dhe të vendosni vlerat në të dhënat bazë, kontrolloni nëse pyetja juaj e tërheqjes kthen një rezultat apo jo. Kjo mund të rrëzohet.

    NSArray *persons = [[[CoreDataManager sharedManager] context] executeFetchRequest:fetchRequest error:&error]; 
    
    if(persons.count > 0){
     // do changes in the object
     } 
    else{ 
    // do what you want to do to handle this situation 
    }
    
    15.12.2015
  • kontrolloni nëse po merrni entitetin e personit këtu Personi *person = [[self.managedObjectContext executeFetchRequest:gabim i kërkesës:&error]lastObject]; 15.12.2015
  • mirë kjo është zero. Pse? Çfare ndodhi ketu? 15.12.2015
  • kjo është çështja. kjo është arsyeja pse nuk përditësohet. Tani kontrolloni nëse ka ndonjë hyrje në bazën tuaj të të dhënave që plotëson kallëzuesin. Shanset janë që të mos ketë një hyrje të tillë. 15.12.2015
  • NSArray *persons = [[[CoreDataManager sharedManager] kontekst] executeFetchRequest:fetchRequest Gabim:&gabim]; if(persons.count › 0){ // bëj ndryshime } else{// bëj atë që dëshiron të bësh për të trajtuar këtë situatë } 15.12.2015
  • Oh Zoti im . mut . Sapo e kuptova. Unë jam gjithmonë duke ndryshuar emrin e parë në redaktim, por ai dërgon emrin e përditësuar që do të thotë se emri origjinal dhe emri i përditësuar nuk do të përputhen kurrë. Tani jam në një humbje se si të përditësoj ndonjë nga fushën time. Për shkak se në rast se përditësoj të gjithë fushën time, nuk do të mund të krahasoj asnjë nga të dhënat me të dhënat origjinale. Çfarë mund të bëj? 15.12.2015
  • Le të të vazhdojmë këtë diskutim në chat. 15.12.2015
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..