iOS数据库相关iOS开发之实战资源iOS学习笔记

iOS使用CoreData实现收藏功能

2016-03-25  本文已影响1573人  HeartPower

实现收藏有很多方式,我在自己练习的项目中用CoreData实现了一下收藏功能,注释很少,算是自己做的一个笔记。
首先创建一个工具类继承NSObject,在里面实现所需要的方法.

工具类的.h文件:

<pre>
typedef NS_ENUM(NSUInteger, SelectInEntities) {

InEntities,
NotInEntities,
SelectError,

};

typedef NS_ENUM(NSUInteger, Entities) {

   NewsEntity,
   PostEntity,
  TypeEntity,
  ForumEntity,

};

@interface BFFCoreDataManager : NSObject

// 管理对象上下文(管理者)
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
// 管理对象模型(表结构)
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
// 持久化存储协调器(助理)
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
// 保存上下文(保存对数据的修改)

//-(SelectInEntities)isInEntities:(Entities)entities
// Model:(id)model;

+(BFFCoreDataManager *)shareBFFCoreDataManager;

工具类的.m文件

<pre>
@implementation BFFCoreDataManager
#pragma mark - Core Data stack

@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;

pragma mark - Core Data Saving support

// 判断是否在数据库中

//爱车俱乐部.人车生活

///地方分会

///论坛推荐

///帖子收藏

///改变帖子收藏按钮图标

///改变论坛收藏按钮图标

/**-(SelectInEntities)isInEntities:(Entities)entities
Model:(id)model
{
switch (entities) {
case NewsEntity:
{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"News" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@"%@", error);
}
BFFNewsModel *newsModel = model;

        for (News *news in fetchedObjects) {

            if ([news.newsLink isEqualToString:newsModel.newsLink]) {
                return InEntities;
            } else {
                return NotInEntities;
            }

        }

    }
        break;
        case PostEntity:
    {

   }
        break;
        case LineEntity:
    {

   }
        break;
        case ForumEntity:
    {

    }
       break;
   default:
        break;
}
return SelectError;

}
@end

*/
</pre>

接下来在收藏页面创建一个Button实现收藏

<pre>

///在我的收藏页面把数据取出

}

///这些数据都铺在了tableView上接下来实现删除的操作

上一篇 下一篇

猜你喜欢

热点阅读