安阳网站如何做优化,揭阳企业网页制作公司,咸鱼网站做链接,刷seo快速排名CoreData使用 创建步骤流程 第一步先创建.xcdatamodeld文件#xff08;New File - iOS - Core Data -Data Model#xff09; 屏幕快照 2016-07-07 下午10.40.16.png名字虽然可以任意取#xff0c;但最好还是取和自己存储数据库名字一样的名字。这样可读性更高些… CoreData使用 创建步骤流程 第一步先创建.xcdatamodeld文件New File - iOS - Core Data -Data Model 屏幕快照 2016-07-07 下午10.40.16.png 名字虽然可以任意取但最好还是取和自己存储数据库名字一样的名字。这样可读性更高些。ps:这个文件就相当于数据库文件一样,数据库文件中可以有多个表表中可以有各个字段值这里也可以有多个实体每个实体有各个键值 屏幕快照 2016-07-07 下午10.40.40.png 通过上面的操作就可以创建一个.xcdatamodeld文件现在我们点击这个文件在最下面找到Add Entity按钮进行实体添加。 屏幕快照 2016-07-13 下午8.50.10.png 现在我们添加了一个名字为Entity的实体这个名字是默认名字现在我们可以对他进行名字的更改对它双击一下即可修改名字或者在xcode右边的信息栏中也可以修改 屏幕快照 2016-07-13 下午9.09.38.png 通过上面操作我们已经创建好了实体的名字现在我们需要往实体中添加我们需要的键值。ps相当于数据库表中的字段具体操作看图说话实体之间的关联我就不介绍了有兴趣的可以自行搜索资料个人觉得会了单个实体创建外加查询就行关联也无非是找到关联的实体中共同的键值从而取得另外一个实体对象我们可以直接先从一个实体取得指定键值对应的属性再通过属性值去查询另一个实体只是没关联的那么方便而已。 屏幕快照 2016-07-13 下午9.17.43.png 第二步创建关联类来操控CoreData实体对象选中.xcdatamodeld文件-xcode菜单栏-Edit-Create NSManagedObject Subclass 屏幕快照 2016-07-13 下午9.35.57.png 选中自己需要关联的.xcdatamodeld文件名称点击下一步即可。 屏幕快照 2016-07-13 下午9.47.24.png 选中.xcdatamodeld文件中需要关联的实体对象点击下一步然后在选择存储目录即可。 完成后会发现自动生成了实体名称对应的类和扩展类Entity.h/.m和EntityCoreDataProperties.h/.m Relationships类似于SQLite的外键定义了在同一个模型中实体与实体之间的关系。可以定义为对一关系或对多关系也可以定义单向或双向的关系根据需求来确定。如果是对多的关系默认是使用NSSet集合来存储模型。 Inverse是两个实体在Relationships中设置关联关系后通过设置inverse为对应的实体这样可以从一个实体找到另一个实体使两个实体具有双向的关联关系。 // // ViewController.m // CoreDataDemo // // Created by pk on 14/10/24. // Copyright (c) 2014年 pk. All rights reserved. // #import ViewController.h #import CoreData/CoreData.h #import User.h #import WuGong.h interface ViewController (){ IBOutlet UITextField* _nameField; IBOutlet UITextField* _scoreField; //管理者上下文我们直接调用的类 NSManagedObjectContext* _context; } - (IBAction)add:(id)sender; - (IBAction)fetch:(id)sender; end implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _context [[NSManagedObjectContextalloc] init]; //user模型 NSManagedObjectModel* user [NSManagedObjectModelmergedModelFromBundles:nil]; //协调者 NSPersistentStoreCoordinator* coordinator [[NSPersistentStoreCoordinatoralloc] initWithManagedObjectModel:user]; //储存方式 NSString* path [NSHomeDirectory()stringByAppendingPathComponent:Documents/abcd.db]; [coordinator addPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nilURL:[NSURLfileURLWithPath:path] options:nilerror:nil]; _context.persistentStoreCoordinator coordinator; } - (void)add:(id)sender{ User* user [NSEntityDescriptioninsertNewObjectForEntityForName:UserinManagedObjectContext:_context]; user.name _nameField.text; user.score [NSNumbernumberWithInt:[_scoreField.textintValue]]; user.wugong [NSEntityDescriptioninsertNewObjectForEntityForName:WuGonginManagedObjectContext:_context]; user.wugong.name 葵花宝典; //保存 if ([_contextsave:nil]) { NSLog(保存成功); } else { NSLog(保存失败); } } - (void)fetch:(id)sender{ //查询请求 NSFetchRequest* request [[NSFetchRequestalloc] init]; //关联要查询的实体 NSEntityDescription* entity [NSEntityDescriptionentityForName:UserinManagedObjectContext:_context]; [request setEntity:entity]; //指定对结果的排序方式 NSSortDescriptor* sortDescriptor [[NSSortDescriptoralloc] initWithKey:nameascending:YES]; NSArray* sortDescriptions [[NSArrayalloc] initWithObjects:sortDescriptor,nil]; [request setSortDescriptors:sortDescriptions]; //开始查询 NSArray* array [_contextexecuteFetchRequest:request error:nil]; for (User* userin array) { NSLog(%-%-%, user.name, user.score, user.wugong.name); // if ([user.name isEqualToString:haha]) { // user.score 90; // [_context save:nil]; [_context deleteObject:user]; // } } } end