gpt4 book ai didi

iphone - iOS - 使用 NSEntityDescription 和 NSManagedObjectContext 编辑数据库条目

转载 作者:行者123 更新时间:2023-11-29 11:18:14 25 4
gpt4 key购买 nike

我是 iOS 新手。我正在使用以下函数向我的数据库中插入新行 -

-(void)insertMetricAction:(NSString *)action andValue:(NSString *)value andStatus:(NSString *)status
{
MetricDb *aDbMessage = (MetricDb *)[NSEntityDescription
insertNewObjectForEntityForName:@"Metric"
inManagedObjectContext:localObjectContext];

aDbMessage.action=action;
aDbMessage.value=value;
aDbMessage.status = status;
double timeInMilliSec=[[NSDate date] timeIntervalSince1970]*1000;
NSString* timeStamp = [NSString stringWithFormat:@"%.0f" ,timeInMilliSec];
aDbMessage.timeStamp=timeStamp;

NSError *error;
if (![localObjectContext save:&error]) {
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@"***Getting database error. Error: %@",[error userInfo]);
}
}

}

如果相反,我想获取现有行并只编辑状态,我该如何使用 iOS 函数来完成?

最佳答案

您需要创建一个 NSFetchRequest 来返回您感兴趣的对象。下面的示例将为给定的 返回实体 Metric 的实例> Action :

- (MetricDb *) metricWithAction: (NSString *) action
{
NSFetchRequest * request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity: [NSEntityDescription entityForName: @"Metric" inManagedObjectContext: localObjectContext]];
[request setPredicate: [NSPredicate predicateWithFormat: @"(%K == %@)",
@"action", action]];
[request setFetchLimit: 1];

NSError * error = nil;
MetricDb * metric = [[localObjectContext executeFetchRequest: request error: &error] lastObject];
if (error) {
NSLog(@"Error fetching metric - %@", [error localizedDescription]);
}

return metric;
}

关于iphone - iOS - 使用 NSEntityDescription 和 NSManagedObjectContext 编辑数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com