iOS的CoreData用法
来源:互联网 发布:linux ftp命令传文件 编辑:程序博客网 时间:2024/05/04 18:18
转自:http://www.2cto.com/kf/201403/283806.html
CoreData以前没用过,最近试用了一下,感觉省了好多的代码,很方便。当然,也只是会使用。
系统默认会给你增加一些东西,至于这些东西具体干嘛使的,自己去谷歌找找,说了,我只会使用。 在工程目录下有一个.xcdatamodeld的文件,这就是CZ喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmVEYXRhtcTW2LXjwcuho7/J0tTU2tXiwO/D5sztvNPSu9CpTW9kZWxkus3F5NbDTW9kZWxktcTK9NDUoaM8YnI+CgrU2nhjZGF0YW1vZGVsZLXE1/PPwr3HQWRkIEVudGl0ec/gtbHT2rS0vajSu7j2yv2+3cSj0M3Sss/gtbHT2tTayv2+3b/itLS9qMHL0rvVxbHtoaM8aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140306/2014030614011142.jpg" alt="\">
现在我们创建一个名Dog的Modeld。同时,这个名字的首字母要大写。 接下来我们来配置这个Dog的一些属性。点击+号添加属性,Type可以选择属性的类型。
然后在Editor里点击CreateNSManagedObject SubClass...选择Dog,然后Create就会多出一个Dog类。
当然,我们完没有必要在意这些东西。
现在就是使用这个东西了,好吧,我承认这一块不太会描述,因为我的数据库学的不太好。 在创建工程的时候,他会自动在AppDelegate里描述一个属性。
我们就是使用NSManagedObjectContext来对文件的增删改查的操作。 首先,我们来插入一条数据。别忘了导入Dog的头文件,虽然这是常识。
创建一个Dog对象。(@(1) == [NSNumbernumberWithInt:1];)
1
2
3
4
5
Dog *dog = [NSEntityDescription insertNewObjectForEntityForName:@
"Dog"
inManagedObjectContext:self.managedObjectContext];
[dog setName:@
"花花"
];
[dog setAge:@(
1
)];
[dog setSex:@(
0
)];
1
2
3
4
5
6
7
8
NSError *error = nil;
BOOL isSave = [self.managedObjectContext save:&error];
if
(!isSave) {
NSLog(@
"error:%@,%@"
,error,[error userInfo]);
}
else
{
NSLog(@
"保存成功"
);
}
然后就是查询这个表的数据,描述一个可变数组来保存他们。
1
@property
(strong, nonatomic) NSMutableArray *dataArray;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//创建取回数据请求
NSFetchRequest *request = [[NSFetchRequest alloc] init];
//设置要检索哪种类型的实体对象
NSEntityDescription *entity = [NSEntityDescription entityForName:@
"Dog"
inManagedObjectContext:self.managedObjectContext];
//设置请求实体
[request setEntity:entity];
//指定对结果的排序方式
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@
"name"
ascending:NO];
NSArray *sortDescriptions = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptions];
NSError *error = nil;
//执行获取数据请求,返回数组
NSMutableArray *mutableFetchResult = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if
(mutableFetchResult == nil) {
NSLog(@
"Error: %@,%@"
,error,[error userInfo]);
}
self.dataArray = mutableFetchResult;
for
(Dog *dog in self.dataArray) {
NSLog(@
"age:%@---sex:%@---name:%@"
,dog.age,dog.sex,dog.name);
}
现在我们给一个对象改个名字。
1
2
3
4
5
6
7
8
9
[dog setName:@
"哮天犬"
];
NSError *error;
BOOL isUpdateSuccess = [self.managedObjectContext save:&error];
if
(!isUpdateSuccess) {
NSLog(@
"error:%@,%@"
,error,[error userInfo]);
}
else
{
NSLog(@
"更新成功!"
);
}
最后再删除这条数据
1
2
3
4
5
6
7
8
9
[self.managedObjectContext deleteObject:dog];
[self.dataArray removeObject:dog];
NSError *error;
if
(![self.managedObjectContext save:&error]) {
NSLog(@
"Error:%@,%@"
,error,[error userInfo]);
}
else
{
NSLog(@
"删除成功!"
);
}
现在我就会这么多了,希望对你有所帮助。 还有,系统默认是把数据保存到Documents下面。你可以在AppDelegate的这个方法里修改。当然,这不重要。
0 0
- iOS的CoreData用法
- iOS的CoreData用法
- ios coredata的用法
- iOS CoreData的基本用法
- iOS中coreData的用法
- (转发)iOS的CoreData用法
- ios coredata的用法和利弊
- ios coredata的用法和利弊
- ios coredata的用法和利弊
- coreData的用法
- IOS的CoreData
- iOS的CoreData练习
- IOS - CoreData的使用
- iOS CoreData的使用
- ios中的coredata的使用
- IOS CoreData的初始化使用
- 关于iOS开发的CoreData
- ios中的coredata的使用
- Java中用引号创建String对象和用构造函数的区别
- linux 下多线程编程以及线程接口的使用
- OJ的文件流操作
- 告别TestFlight,拥抱DeployGate
- IOS 内存管理
- iOS的CoreData用法
- 推荐系统的架构
- 第三周作业
- Android事件传递机制
- App开发者如何选择移动广告平台1 - 开发者规模分析
- C# 16进制与字符串、字节数组之间的转换
- .net中如何获取机器硬件信息
- ajax 加载json对象的实例
- LCD驱动调试中部分常见问题的分析及解决办法