iphone - 核心数据建模基础知识

标签 iphone ios xcode core-data

我正在开发一个用于学习目的的应用程序。它是一个使用 NSXMLParser 的提要解析器。除了坚持,几乎一切都完成了。我已经学习了归档并在我的项目中实现了它,但为了转向更好的解决方案并使我的学习曲线更好,我决定将我的应用程序迁移到 Core Data。

下面是我的解析器代码。 FeedChannel 正在处理 feedburner 提要内的 channel 属性,并获取 FeedItem 文件正在处理的“项目”。

FeedChannel.h

#import <Foundation/Foundation.h>

@interface FeedChannel : NSObject <NSXMLParserDelegate> {

    NSMutableArray *items;
    NSMutableString *currentString;
}

@property (nonatomic, assign) id parentParserDelegate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *sDescription;
@property (nonatomic, readonly) NSMutableArray *items;

@end

FeedItem.h

#import <Foundation/Foundation.h>

@interface FeedItem : NSObject <NSXMLParserDelegate> {

    NSMutableString *currentString;

}

@property (nonatomic, assign) id parentParserDelegate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *link;
@property (nonatomic, retain) NSString *creator;
@property (nonatomic, retain) NSString *pubDate;
@property (nonatomic, retain) UIImage *thumbnail;


@end

我尝试过学习 CoreData,但对于新程序员来说,它显然有点复杂。

目前我所做的是在我的项目中添加了 CoreData 框架,创建了一个模型文件,添加了两个名为 FeedChannel 和 FeedItem 的实体。我不知道该怎么做如下:

1) 我应该使用 Xcode 中的“创建托 pipe 类”来覆盖现有文件,还是只在检查器面板中的每个条目的数据模型中提及类名称,还是两种方法相同?

2)如果我使用“创建托 pipe 类”,它也会使用动态而不是综合,我不知道它是否会影响我的项目。

3)Core Data的数据模型中有UIImage类型,如何处理缩略图属性

最重要的问题:

4) 如何处理保存 FeedItem 中项目的 FeedChannel 文件中的 NSMutableArray“项目”?我需要以某种方式建立一对多关系吗?

希望它能回答新手面临的所有与核心数据相关的基本问题。提前致谢。

最佳答案

  1. “创建托 pipe 类”快捷方式就是这样。它真正所做的只是子类 NSManagedObject(相对于 NSObject)并为所有属性和关系创建属性。所以不,你不必使用它。如果您愿意,也可以手动执行相同的操作。

  2. 是的,托管对象的属性需要是@dynamic。这告诉编译器该属性将在运行时由核心数据解析。

  3. 您需要transformable类型来处理任何对象——您的属性将是id类型,即通用对象。

  4. 核心数据将取代您的数组。您将在 channel 和 Feed 项之间建立对多关系。确保在 Feed 项和 channel 之间创建逆对一关系,并将这些关系标记为逆关系。

有一些关于使用 Core Data 的优秀教程和书籍。乍一看似乎有点令人畏惧,但实际上并没有那么糟糕。

关于iphone - 核心数据建模基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14521849/

相关文章:

ios - 如何以编程方式获取正确的 iOS 版本?

ios - 如何在场景中添加按钮和标签

ios - 在另一台计算机上运行项目时找不到 Facebook sdk

xcode - iOS SDK 4.1 中的 1347 错误

iOS UIInterfaceOrientation

ios - Pre-Action运行脚本以清除模拟器的Application Support目录

ios - 如何在 iOS 应用程序中评论 instagram 提要

ios - 简单的横向滚动图像 - UIScrollView 或 UIPageViewController?

c# - CGRectMake。在 Swift 中不可用

c++ - 内存相关崩溃: 3 Dimensional Array in Cocos2d Game