首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要xcdatamodel吗?

需要xcdatamodel吗?
EN

Stack Overflow用户
提问于 2015-07-23 10:47:05
回答 1查看 822关注 0票数 1

这是我的iOS应用程序中使用CoreData的实体对象。

代码语言:javascript
复制
#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

我将类命名为DataPrice,但希望实体为Price

对于我的应用程序,我需要一个xcdatamodel吗?我如何定义一个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 11:27:01

是的,你需要一个数据模型。您可以通过File _ New…获得它文件和工作表中的iOS \ Core数据/数据模型。

但是,从一开始就更容易创建核心数据应用程序。

类和实体(类型)可以有不同的名称。您只需为实体类型分配一个具有不同名称的类。(为所有未被称为NSManagedObject的实体类型分配了一个不同的名称,默认为NSManagedObject。)但几乎没有理由这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31585126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档