【问题标题】:Core Data basics核心数据基础
【发布时间】:2014-06-28 12:09:37
【问题描述】:

再次需要帮助!在应用程序启动时,我需要创建 2 个实体:Provider и Country。我觉得他们是这样的:

-(NSArray *) resultArray {

    Provider *orangeFR = [NSEntityDescription insertNewObjectForEntityForName:@"Provider" inManagedObjectContext:self.managedObjectContext];
    orangeFR.name = [NSString stringWithFormat:@"Orange"];
    orangeFR.adress = [NSString stringWithFormat:@"Champ De Mars"];
    Provider *sfrFR = [NSEntityDescription insertNewObjectForEntityForName:@"Provider" inManagedObjectContext:self.managedObjectContext];
    sfrFR.name = [NSString stringWithFormat:@"SFR"];
    sfrFR.adress = [NSString stringWithFormat:@"SFR Adress"];
    NSArray *FRProviders = @[orangeFR, sfrFR];

    Provider *BeelineRU = [NSEntityDescription insertNewObjectForEntityForName:@"Provider" inManagedObjectContext:self.managedObjectContext];
    BeelineRU.name = [NSString stringWithFormat:@"Beeline"];
    BeelineRU.adress = [NSString stringWithFormat:@"Beeline adress"];
    Provider *MTSRU = [NSEntityDescription insertNewObjectForEntityForName:@"Provider" inManagedObjectContext:self.managedObjectContext];
    MTSRU.name = [NSString stringWithFormat:@"MTS"];
    MTSRU.adress = [NSString stringWithFormat:@"MTS Adress"];
    NSArray *RUProviders = @[BeelineRU, MTSRU];

    Country *france = [NSEntityDescription insertNewObjectForEntityForName:@"Country" inManagedObjectContext:self.managedObjectContext];
    france.name = [NSString stringWithFormat:@"France"];
    [france addProvider:[NSSet setWithArray:FRProviders]];

    Country *russia = [NSEntityDescription insertNewObjectForEntityForName:@"Country" inManagedObjectContext:self.managedObjectContext];
    russia.name = [NSString stringWithFormat:@"Russia"];
    [russia addProvider:[NSSet setWithArray:RUProviders]];

    NSArray *countries = @[france, russia];
    return countries;

}

那么我如何在下次启动时使用这些数据而无需再次创建它们?如何计算 Country 对象?将 Provider 传递给下一个控制器的正确方法是什么,我如何计算那个控制器中的 Provider?

  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MSTProviderViewController *providerViewController = [[MSTProviderViewController alloc]init];
    [self.navigationController pushViewController:providerViewController animated:YES];

    NSArray *countries = [self resultArray];
    Country *selectedCountry = countries[indexPath.row];
    Provider *selectedProvider = selectedCountry.provider; //[selectedCountry valueForKey:@"provider"];
    //NSArray *selectedProvider = [selectedCountry valueForKey:@"provider"];
    providerViewController.providers = selectedProvider;

}

【问题讨论】:

  • 这至少有四个问题。请将其编辑为仅一个,否则无法回答。
  • @jrturton 请告诉我有关初始化和计数的信息
  • 如果有帮助,也请尝试接受您之前问题的答案。人们花时间试图帮助你。

标签: ios objective-c uitableview core-data


【解决方案1】:

那么我如何在下次启动时使用这些数据而无需再次创建它们?

从核心数据存储中获取它。例如使用NSFetchRequest

如何计算 Country 对象?

NSArray *resultArray = [self resultArray];
NSInteger count = [resultArray count];

将 Provider 传递给下一个控制器的正确方法是什么?如何计算该控制器中的 Provider?

在创建下一个控制器调用的方法中

nextController.providerArray = self.providerArray;

如果这对您没有帮助,请尝试改进您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多