iOS如何在viewDidLoad中自动释放方法?

iOS如何在viewDidLoad中自动释放方法?,ios,cocoa-touch,Ios,Cocoa Touch,每当应用程序第一次安装和启动时,我都会尝试调用此方法一次 我的想法是用我的数据填充核心数据表 如何在viewDidLoad中自动释放此方法 - (void)insertNewObject:(id)sender { if ((firstRun!=YES)) { NSLog(@"The data was already Added"); } else { NSManagedObjectContext *context = [self.

每当应用程序第一次安装和启动时,我都会尝试调用此方法一次

我的想法是用我的数据填充核心数据表

如何在viewDidLoad中自动释放此方法

- (void)insertNewObject:(id)sender
{

    if ((firstRun!=YES)) {

        NSLog(@"The data was already Added");

    }

    else {

        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
        NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];

        [newManagedObject setValue:[[NSString alloc]initWithFormat:@"new"] forKey:@"name"];
        firstRun = NO;

        // Save the context.
        NSError *error = nil;
        if (![context save:&error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
    }

}

您可以使用
NSUserDefaults
验证它是否是第一次运行

- (void)insertNewObject:(id)sender
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSDictionary *userDefaultsDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
                                          [NSNumber numberWithBool:YES], @"firstRun", nil];
    [prefs registerDefaults:userDefaultsDefaults];
    BOOL firstRun = [prefs boolForKey:@"firstRun"];

    if (firstRun==YES) {
        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
        NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];

        [newManagedObject setValue:[[NSString alloc]initWithFormat:@"new"] forKey:@"name"];

        // Save the context.
        NSError *error = nil;
        if (![context save:&error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
        [prefs setBool:NO forKey:@"firstRun"];
        [prefs synchronize];
    } else {
         NSLog(@"The data was already Added");
    }
}

您可以在
视图中使用
[self-insertNewObject:nil]调用此方法将消失
viewDidLoad

你说的自动释放方法是什么意思?不应该自动为你做吗?他正在尝试验证它是否是第一次运行。。。不过,我不知道他为什么写“自动释放”,如果我有一个按钮,我就用这个代码
uibarbuttoneim*addButton=[[uibarbuttoneim alloc]initwithbarbuttonsystememitem:uibarbuttonsystememidemadd-target:self-action:@selector(insertNewObject:);self.navigationItem.rightBarButtonItem=addButton但如果我不想使用按钮,我需要自动运行此方法。非常感谢,这就是我想要做的;)