Ios 是否需要xcdatamodel?
这是我的iOS应用程序中使用CoreData的实体对象Ios 是否需要xcdatamodel?,ios,objective-c,core-data,xcdatamodel,Ios,Objective C,Core Data,Xcdatamodel,这是我的iOS应用程序中使用CoreData的实体对象 #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> #import "Price.h" @interface DataPrice : NSManagedObject @property (nonatomic) NSInteger id; @property (nonatomic, retain) NSNumber *ron95; @pr
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Price.h"
@interface DataPrice : NSManagedObject
@property (nonatomic) NSInteger id;
@property (nonatomic, retain) NSNumber *ron95;
@property (nonatomic, retain) NSNumber *ron92;
@property (nonatomic, retain) NSNumber *dieselNormal;
@property (nonatomic, retain) NSNumber *dieselSpecial;
@property (nonatomic, retain) NSDate *postDate;
+ (instancetype)insertDataPriceWithPrice:(Price*)price
inManagedObjectContext:(NSManagedObjectContext *)managedObjectContext;
+ (instancetype)fetchDataPriceInManagedObjectContext:(NSManagedObjectContext *)managedObjectContext;
+ (Price*)fetchPriceInManagedObjectContext:(NSManagedObjectContext *)managedObjectContext;
@end
#import "DataPrice.h"
@implementation DataPrice
@dynamic id;
@dynamic ron95;
@dynamic ron92;
@dynamic dieselNormal;
@dynamic dieselSpecial;
@dynamic postDate;
+ (instancetype)insertDataPriceWithPrice:(Price*)price
inManagedObjectContext:(NSManagedObjectContext *)managedObjectContext
{
DataPrice* dataPrice = [NSEntityDescription insertNewObjectForEntityForName:self.entityName
inManagedObjectContext:managedObjectContext];
dataPrice.id = price.id;
dataPrice.ron95 = price.ron95;
dataPrice.ron92 = price.ron92;
dataPrice.dieselNormal = price.dieselNormal;
dataPrice.dieselSpecial = price.dieselSpecial;
dataPrice.postDate = price.postDate;
return dataPrice;
}
+ (NSString*)entityName
{
return @"Price";
}
+ (instancetype)fetchDataPriceInManagedObjectContext:(NSManagedObjectContext *)managedObjectContext {
NSEntityDescription *entity = [NSEntityDescription entityForName:self.entityName inManagedObjectContext:managedObjectContext];
if (!entity) {
return NULL;
}
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"postDate" ascending:NO];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = entity;
request.sortDescriptors = @[ sortDescriptor ];
request.fetchLimit = 1;
NSError *error;
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
DataPrice *result = fetchResults.firstObject;
return result;
}
+ (Price*)fetchPriceInManagedObjectContext:(NSManagedObjectContext *)managedObjectContext {
DataPrice *dataPrice = [self fetchDataPriceInManagedObjectContext:managedObjectContext];
Price *price = [[Price alloc] init];
price.id = dataPrice.id;
price.ron92 = dataPrice.ron92;
price.ron95 = dataPrice.ron95;
price.dieselNormal = dataPrice.dieselNormal;
price.dieselSpecial = dataPrice.dieselSpecial;
price.postDate = dataPrice.postDate;
return price;
}
@end
#导入
#进口
#进口“Price.h”
@接口数据价格:NSManagedObject
@属性(非原子)NSInteger id;
@属性(非原子,保留)NSNumber*ron95;
@属性(非原子,保留)NSNumber*ron92;
@属性(非原子,保留)NSNumber*柴油标准;
@属性(非原子,保留)NSNumber*柴油专用;
@财产(非原子,保留)NSDate*postDate;
+(instancetype)insertDataPriceWithPrice:(价格*)价格
inManagedObjectContext:(NSManagedObjectContext*)managedObjectContext;
+(instancetype)fetchDataPriceInManagedObjectContext:(NSManagedObjectContext*)managedObjectContext;
+(Price*)获取managedObjectContext中的价格:(NSManagedObjectContext*)managedObjectContext;
@结束
#导入“DataPrice.h”
@实施数据价格
@动态id;
@动态ron95;
@动态ron92;
@动态柴油机;
@动力柴油机;
@动态日期;
+(instancetype)insertDataPriceWithPrice:(价格*)价格
inManagedObjectContext:(NSManagedObjectContext*)managedObjectContext
{
DataPrice*DataPrice=[NSEntityDescription insertNewObjectForEntityForName:self.entityName
inManagedObjectContext:managedObjectContext];
dataPrice.id=price.id;
dataPrice.ron95=price.ron95;
dataPrice.ron92=price.ron92;
dataPrice.dieselNormal=price.dieselNormal;
dataPrice.dieselsspecial=price.dieselsspecial;
dataPrice.postDate=price.postDate;
返回数据价格;
}
+(NSString*)entityName
{
返回"价格";;
}
+(instancetype)fetchDataPriceInManagedObjectContext:(NSManagedObjectContext*)managedObjectContext{
NSEntityDescription*entity=[NSEntityDescription entityForName:self.entityName inManagedObjectContext:managedObjectContext];
如果(!实体){
返回NULL;
}
NSSortDescriptor*sortDescriptor=[[NSSortDescriptor alloc]initWithKey:@“postDate”升序:否];
NSFetchRequest*request=[[NSFetchRequest alloc]init];
request.entity=实体;
request.sortDescriptors=@[sortDescriptor];
request.fetchLimit=1;
n错误*错误;
NSArray*fetchResults=[managedObjectContext executeFetchRequest:请求错误:&错误];
DataPrice*result=fetchResults.firstObject;
返回结果;
}
+(Price*)fetchPriceInManagedObjectContext:(NSManagedObjectContext*)managedObjectContext{
DataPrice*DataPrice=[self-fetchDataPriceInManagedObjectContext:managedObjectContext];
价格*价格=[[Price alloc]init];
price.id=dataPrice.id;
price.ron92=dataPrice.ron92;
price.ron95=dataPrice.ron95;
price.dieselNormal=dataPrice.dieselNormal;
price.dieselsspecial=dataPrice.dieselsspecial;
price.postDate=dataPrice.postDate;
退货价格;
}
@结束
我将类命名为DataPrice
,但希望实体为Price
我的应用程序是否需要一个
xcdatamodel
,如何定义它?A.是的,您需要一个数据模型。您可以通过文件| New…|文件和工作表iOS | Core Data |数据模型获得它
但是,从一开始就创建核心数据应用程序更容易
B.类和实体(类型)可以有不同的名称。您只需将一个具有不同名称的类分配给实体类型即可。(Ny默认值
NSManagedObject
已分配,未调用的所有实体类型的不同名称是什么NSManagedObject
;-))但几乎没有理由这样做。是否DenkoStation.xcdatamodeld
自动转换为DenkoStation.momd
?我正在使用发布在GitHub上的项目。ORM对我来说不是一个新概念,我从TopLink开始就使用它。所以我想我会很幸运有一个示例项目。由于ORIM,ORM经常不得不在OOP和rDBMS之间做出决策。每个实现都会做出不同的决定。了解一个人对理解另一个人没有多大帮助。