2010-07-29 1 views
0
[request setReturnsDistinctResults:YES]; 

ne renvoie pas de résultats distincts pour l'attribut NSString *?Core Data setReturnDistictResults Fonctionne-t-il sur NSString *?

pour en dessous de la structure exemple, j'ai 17 managedObjects de valeurs en nature avec attribut assetGroupName et je suis en train de chercher toute valeur de assetGroupNames distincte comme

[request setResultType:NSDictionaryResultType]; 
[request setReturnsDistinctResults:YES]; 
[request setPropertiesToFetch :[NSArray arrayWithObject:@"assetGroupName"]]; 

mais les résultats a encore argentina plusieurs fois, et d'autres pays.

 

values =  (
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "102.20"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "102.00"; 
       Name = "AR Bonar 11"; 
       PECSAsk = 569; 
       PECSChg = "(31)"; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 604; 
       SSPAsk = 677; 
       SSPChgDay = "+3"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "6.97"; 
       assetGroupName = Argentina; 
       assetId = ARBONAR11; 
       iconPath = "images/flag_Argentina.gif"; 
       updated = false; 
      }; 
      assetId = ARBONAR11; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#53840f"; 
       AskPrice = "84.00"; 
       BidColorCode = "#53840f"; 
       BidPrice = "83.75"; 
       Name = "AR Bod 15"; 
       PECSAsk = 945; 
       PECSChg = 14; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "-0.10"; 
       PriceChgColorCode = "#53840F"; 
       SOLAsk = 985; 
       SSPAsk = 1007; 
       SSPChgDay = "+7"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "11.74"; 
       assetGroupName = Argentina; 
       assetId = ARBON15; 
       iconPath = "images/flag_Argentina.gif"; 
       updated = false; 
      }; 
      assetId = ARBON15; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#53840f"; 
       AskPrice = "35.15"; 
       BidColorCode = "#53840f"; 
       BidPrice = "35.05"; 
       Name = "AR Bod 12"; 
       PECSAsk = ""; 
       PECSChg = "-"; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "-0.10"; 
       PriceChgColorCode = "#53840F"; 
       SOLAsk = 675; 
       SSPAsk = 721; 
       SSPChgDay = "+22"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "7.69"; 
       assetGroupName = Argentina; 
       assetId = ARBON12; 
       iconPath = "images/flag_Argentina.gif"; 
       updated = false; 
      }; 
      assetId = ARBON12; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "97.00"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "95.00"; 
       Name = "AR Bco Macro 17"; 
       PECSAsk = 669; 
       PECSChg = "-"; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 690; 
       SSPAsk = 709; 
       SSPChgDay = "+3"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "9.12"; 
       assetGroupName = Argentina; 
       assetId = ARBCO17; 
       iconPath = "images/flag_Argentina.gif"; 
       updated = false; 
      }; 
      assetId = ARBCO17; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "120.00"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "118.50"; 
       Name = "BR Braskem 15"; 
       PECSAsk = 268; 
       PECSChg = 10; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 294; 
       SSPAsk = 316; 
       SSPChgDay = "+3"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "4.72"; 
       assetGroupName = Brazil; 
       assetId = BRBRSKM15; 
       iconPath = "images/flag_Brazil.gif"; 
       updated = false; 
      }; 
      assetId = BRBRSKM15; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = ""; 
       AskPrice = ""; 
       BidColorCode = ""; 
       BidPrice = ""; 
       Name = ""; 
       PECSAsk = ""; 
       PECSChg = ""; 
       PECSChgColorCode = "#000000"; 
       PriceChg = ""; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = ""; 
       SSPAsk = ""; 
       SSPChgDay = ""; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = ""; 
       assetGroupName = Brazil; 
       assetId = BRBND19; 
       iconPath = "images/flag_Brazil.gif"; 
       updated = false; 
      }; 
      assetId = BRBND19; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = ""; 
       AskPrice = ""; 
       BidColorCode = ""; 
       BidPrice = ""; 
       Name = ""; 
       PECSAsk = ""; 
       PECSChg = ""; 
       PECSChgColorCode = "#000000"; 
       PriceChg = ""; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = ""; 
       SSPAsk = ""; 
       SSPChgDay = ""; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = ""; 
       assetGroupName = Brazil; 
       assetId = BRBND18; 
       iconPath = "images/flag_Brazil.gif"; 
       updated = false; 
      }; 
      assetId = BRBND18; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "109.11"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "108.47"; 
       Name = "CL Rep 13"; 
       PECSAsk = 72; 
       PECSChg = 12; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 75; 
       SSPAsk = 97; 
       SSPChgDay = 0; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "1.74"; 
       assetGroupName = Chile; 
       assetId = CLREP13; 
       iconPath = "images/flag_Chile.gif"; 
       updated = false; 
      }; 
      assetId = CLREP13; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "125.00"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "123.78"; 
       Name = "CL Codelco 19"; 
       PECSAsk = 130; 
       PECSChg = 3; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 138; 
       SSPAsk = 145; 
       SSPChgDay = "+3"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "4.0"; 
       assetGroupName = Chile; 
       assetId = CLCOD19; 
       iconPath = "images/flag_Chile.gif"; 
       updated = false; 
      }; 
      assetId = CLCOD19; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#53840f"; 
       AskPrice = "112.20"; 
       BidColorCode = "#53840f"; 
       BidPrice = "111.90"; 
       Name = "CO Rep 12"; 
       PECSAsk = 78; 
       PECSChg = "(28)"; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.20"; 
       PriceChgColorCode = "#53840F"; 
       SOLAsk = 82; 
       SSPAsk = 134; 
       SSPChgDay = "-14"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "1.75"; 
       assetGroupName = Colombia; 
       assetId = COREP12; 
       iconPath = "images/flag_Colombia.gif"; 
       updated = false; 
      }; 
      assetId = COREP12; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = ""; 
       AskPrice = ""; 
       BidColorCode = ""; 
       BidPrice = ""; 
       Name = ""; 
       PECSAsk = ""; 
       PECSChg = ""; 
       PECSChgColorCode = "#000000"; 
       PriceChg = ""; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = ""; 
       SSPAsk = ""; 
       SSPChgDay = ""; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = ""; 
       assetGroupName = Colombia; 
       assetId = COREP11; 
       iconPath = "images/flag_Colombia.gif"; 
       updated = false; 
      }; 
      assetId = COREP11; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "100.00"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "100.00"; 
       Name = "CO Rep 10"; 
       PECSAsk = ""; 
       PECSChg = "-"; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = ""; 
       SSPAsk = ""; 
       SSPChgDay = ""; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = ""; 
       assetGroupName = Colombia; 
       assetId = COREP10; 
       iconPath = "images/flag_Colombia.gif"; 
       updated = false; 
      }; 
      assetId = COREP10; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#53840f"; 
       AskPrice = "112.00"; 
       BidColorCode = "#53840f"; 
       BidPrice = "111.25"; 
       Name = "CO EEB 14"; 
       PECSAsk = 367; 
       PECSChg = 5; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.25"; 
       PriceChgColorCode = "#53840F"; 
       SOLAsk = 395; 
       SSPAsk = 417; 
       SSPChgDay = "-4"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "5.55"; 
       assetGroupName = Colombia; 
       assetId = COEEB14; 
       iconPath = "images/flag_Colombia.gif"; 
       updated = false; 
      }; 
      assetId = COEEB14; 
     }, 
       { 
      assetCellValueLst =    { 
       AskColorCode = "#B8D1ED"; 
       AskPrice = "109.25"; 
       BidColorCode = "#B8D1ED"; 
       BidPrice = "108.00"; 
       Name = "ID PLNJ 37"; 
       PECSAsk = 353; 
       PECSChg = 8; 
       PECSChgColorCode = "#000000"; 
       PriceChg = "0.00"; 
       PriceChgColorCode = "#000000"; 
       SOLAsk = 367; 
       SSPAsk = 353; 
       SSPChgDay = "+2"; 
       SSPChgDayColorCode = "#000000"; 
       YTMAsk = "7.1"; 
       assetGroupName = Indonesia; 
       assetId = IDPLNJ37; 
       iconPath = "images/flag_Indonesia.gif"; 
       updated = false; 
      }; 
      assetId = IDPLNJ37; 
     }, 

Répondre

3

Ce:

[request setPropertiesToFetch :[NSArray arrayWithObject:@"assetGroupName"]]; 

... est faux. Vous devez passer un tableau d'objets NSPropertyDescription pas seulement une chaîne avec le nom des propriétés.

Alors:

NSEntityDescription *theEntity=[NSEntityDescription entityForName:@"Values" inManagedObjectContext:self.moc]; 
NSDictionary *entityProps=[theEntity propertiesByName]; 
NSPropertyDescription *assetGroupNameDescript=[entityProps valueForKey:@"assetGroupName"]]; 
//... 
[request setPropertiesToFetch :[NSArray arrayWithObject:assetGroupNameDescript]; 
+0

Merci une Lott ... il n'aidé – user400579