Core data 核心数据输入提取到标签中

Core data 核心数据输入提取到标签中,core-data,Core Data,我想存储文本字段中的数据。然后使用此数据填充视图控制器内标签中的文本。这可能吗?我把它弄得一团糟,但似乎什么都不管用。有什么想法吗?以下是我的两种方法 - (IBAction)saveButton:(id)sender { CoreDataStack *coreDataStack = [CoreDataStack defaultStack]; NSManagedObject *noteEntry = [NSEntityDescription insertNewObjectForEntityFor

我想存储文本字段中的数据。然后使用此数据填充视图控制器内标签中的文本。这可能吗?我把它弄得一团糟,但似乎什么都不管用。有什么想法吗?以下是我的两种方法

- (IBAction)saveButton:(id)sender {
CoreDataStack *coreDataStack = [CoreDataStack defaultStack];
NSManagedObject *noteEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Notes" inManagedObjectContext:coreDataStack.managedObjectContext];
[noteEntry setValue:_notesField.text forKey:@"notes"];

NSError *error = nil;
// Save the object to persistent store
if (![coreDataStack.managedObjectContext save:&error]) {
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}




[coreDataStack saveContext];


}
以下是我的视图加载方法:

- (void)viewDidLoad
{
[super viewDidLoad];


CoreDataStack *coreDataStack = [CoreDataStack defaultStack];
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Notes"];
Notes *entry = [NSEntityDescription insertNewObjectForEntityForName:@"Notes" inManagedObjectContext:coreDataStack.managedObjectContext];

_outputLabel.text = entry.notes;

}

saveButton:
方法中的代码似乎正常。但是
viewDidLoad
方法中的代码似乎是错误的。您是否正在尝试执行以下操作

- (void)viewDidLoad {
    [super viewDidLoad];

    CoreDataStack *coreDataStack = [CoreDataStack defaultStack];

    //First way to init your fetchRequest:
    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Notes"];

    //Second way to init your fetchRequest:
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Notes" inManagedObjectContext:coreDataStack];
    [fetchRequest setEntity:entity];
    //Having a NSEntityDescription object can be usefull if you need to group your data, for example

    //Set some predicates, if necessary
    //Set some sortdescriptors, if necessary

    NSError *error;
    NSArray *resultsArray = [coreDataStack executeFetchRequest:request error:&error];

    NSLog(@"%@", resultsArray);
    _outputLabel.text = [[resultsArray firstObject] notes]; //if your array can only have one object
}

NSLog将为您提供获取数组的结构(我猜不出来)。然后,您将能够设置
\u outputLabel.text

@user1966109给出的答案正是您想要的答案。由于需要在标签中显示文本,因此需要设置谓词以获取单行。如下所示设置谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"value == abc"];//considerin abc is the word you are looking for.
request.predicate = predicate;
//then execute the query.

看来我漏掉了NSArray。在我的数据模型中,我有一个实体Notes,还有一个属性note。我需要调用[request setEntity:@“Notes:”,然后设置排序描述符,还是跳过[request setEntity]直接转到排序描述符和resultsArray?另外,我是否设置了带有resultsArray索引的_outputLabel.text?请参见我的编辑。我倾向于使用第一种方法初始化简单的fetchRequests,但人们似乎更喜欢第二种方法。对于某些请求,您将需要NSEntityDescription。这当然是可能的。什么不是呢从您的问题中可以清楚地看出,您打算如何获取托管对象。CoreData获取请求并不打算获取单个特定对象。它们匹配存储中与给定条件匹配的所有对象。这就是为什么通常使用core data使用NSFetchedResultsController填充列表视图,并让用户选择parti使用该模型对象(ala主细节模板)。@quellish获取单个对象的最佳方法是什么?我想要一个持久性存储。我想我刚刚计算了核心数据。你考虑过UIDocument吗?我会研究一下……谢谢!