Ios 是否需要xcdatamodel?

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

这是我的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;
@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之间做出决策。每个实现都会做出不同的决定。了解一个人对理解另一个人没有多大帮助。