ios coreData sqlite3

2024-02-17 17:58
文章标签 ios coredata sqlite3

本文主要是介绍ios coreData sqlite3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//
//  ViewController.m
//  CoreDataByStoryboard
//
//  Created by 何瑾 on 15/1/15.
//  Copyright (c) 2015年 e世雕龙. All rights reserved.
//#import "ViewController.h"
#import "Student.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *txtName;// 姓名文本框
@property (weak, nonatomic) IBOutlet UITextField *txtAge;// 年龄文本框
@property (weak, nonatomic) IBOutlet UITextField *txtID;// ID文本框
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;// 托管对象上下文(类似于sqlite3编程中数据库的缓冲区)
@property (strong, nonatomic) NSArray *students;// 查询出来的学生数组
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self getDocPath];// Do any additional setup after loading the view, typically from a nib.// 1、获取应用程序对象UIApplication *app = [UIApplication sharedApplication];// 2、获取应用程序的委托id appDelegate = app.delegate;// 3、获取应用程序中的托管对象上下文self.managedObjectContext = [appDelegate managedObjectContext];
}
#pragma mark 注册
- (IBAction)btnRegister:(id)sender {// 通过实体描述类创建数据模型(托管对象)放入托管对象上下文中Student *stu = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.managedObjectContext];// 给数据模型(托管对象)属性绑定界面数据static int i = 0;i++;stu.id = [NSNumber numberWithInt:i];stu.name = self.txtName.text;stu.age = [NSNumber numberWithInt:[self.txtAge.text intValue]];stu.address = @"北京人";// 通过托管对象上下文保存数据模型(托管对象)__autoreleasing NSError *error = nil;[self.managedObjectContext save:&error];// 判断是否保存成功if (error) {[self myAlert:@"托管对象保存失败!"];} else {[self myAlert:@"托管对象保存成功!"];}
}
#pragma mark 查询
- (IBAction)btnSearch:(id)sender {// 1、创建抓取请求对象NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"];// 从界面获取查询条件NSNumber *id = [NSNumber numberWithInt:[self.txtID.text intValue]];NSLog(@"id:%@",id);// 2、创建谓词(查询条件)NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id=%@",id];// 2.1把谓词放入抓取请求对象中[request setPredicate:predicate];// 3、创建排序规则NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"id" ascending:YES];// 3.1把排序规则放入抓取请求对象中[request setSortDescriptors:@[sortDescriptor]];// 4、执行抓取(查询)__autoreleasing NSError *error = nil;self.students = [self.managedObjectContext executeFetchRequest:request error:&error];if (error) {[self myAlert:@"查询失败!"];} else {[self myAlert:@"查询成功!请看控制台!"];NSLog(@"students:%@",self.students);}
}
#pragma mark 封装UIAlertView
- (void)myAlert:(NSString *)errorMsg {UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"信息" message:errorMsg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];[alert show];
}
#pragma mark 获取应用沙盒的documents目录路径
- (NSString *)getDocPath {NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *docPath = docPaths[0];NSLog(@"docPath:%@",docPath);return docPath;
}
@end

这篇关于ios coreData sqlite3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/718564

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

ubunt下安装sqlite3

// 在线安装 1.安装sqlite3  sudo apt-get install sqlite3 2.安装libsqlite3-dev sudo apt-get install libsqlite3-dev 否则在编译的时候会出现错误:error:sqlite3.h No such file or directory

iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)

摘要 剪贴板同步能够提高很多的效率,免去复制、发送、复制、粘贴的步骤,只需要在手机上复制,就可以直接在电脑上 ctrl+v 粘贴,这方面在 Apple 设备中是做的非常好的,Apple 设备之间的剪贴板同步功能(Universal Clipboard)确实非常方便,它可以在 iPhone、iPad 和 Mac 之间无缝传输剪贴板内容,从而大大提高工作效率。 但是,iPhone 如何和 Wind