首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在iPhone上将NSData插入SQLite

在iPhone上将NSData插入SQLite,需要遵循以下步骤:

  1. 创建数据库和表格:首先需要创建一个SQLite数据库,并在其中创建一个表格,用于存储NSData。
  2. 将NSData转换为二进制数据:在将NSData插入SQLite数据库之前,需要将其转换为二进制数据。可以使用以下代码将NSData转换为二进制数据:
代码语言:txt
复制
NSData *data = ...;
NSUInteger dataLength = [data length];
const void *dataBytes = [data bytes];
  1. 插入数据到表格:使用SQL语句将二进制数据插入到SQLite数据库的表格中。可以使用以下代码执行SQL语句:
代码语言:txt
复制
NSString *sql = @"INSERT INTO myTable (dataColumn) VALUES (?)";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
    sqlite3_bind_blob(statement, 1, dataBytes, (int)dataLength, NULL);
    sqlite3_step(statement);
    sqlite3_finalize(statement);
}
  1. 提交更改:最后,需要提交对SQLite数据库的更改,以确保数据被写入磁盘。可以使用以下代码提交更改:
代码语言:txt
复制
sqlite3_exec(database, "COMMIT", NULL, NULL, NULL);

总结:在iPhone上将NSData插入SQLite数据库,需要先创建数据库和表格,然后将NSData转换为二进制数据,接着使用SQL语句将二进制数据插入到表格中,最后提交更改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

学习iPhone开发中 sqlite3的

由于我主要负责我们小组项目数据库模块的部分所以这几天都一直研究iphone中最为常用的一个简单数据库sqlite,自己也搜集很多资料,因此在这里总结一下这几天的学习成果: 1.Sqlite...   sqlite3 film.db < output.sql 大量插入资料时,你可能会需要先打这个指令: begin; 插入完资料后要记得打这个指令,资料才会写进数据库中: commit...这里简单的介绍一下iPhoneSqlite 3的使用方法。...首先需要在项目中引用Sqlite 3的开发包,下面是iPhone SDK 3.0下的目录: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/...iPhone中使用Sqlite 3主要步骤如下: 1 首先获取iPhoneSqlite 3的数据库文件的地址 2 打开Sqlite 3的数据库文件 3 定义SQL文 4 邦定执行SQL所需要的参数

88810

【IOS开发进阶系列】APP性能优化专题

库的缓存         NSString *device = [MDUtility getCurrentDeviceModel];         if ([device rangeOfString:@"iPhone...3.2    使用SQLite数据库 3.2.1  表结构优化         iOS这些CPU处理能力低、内存少、存储空间少情况下,我们不能在本地建立复杂表关系,表的个数也不宜超过5个,表中的字段数量也不宜太多...salary > 5000000) AND (lastName LIKE 'Guan') 优于 (lastName LIKE 'Guan')AND (salary > 5000000) 3.2.3  插入...Objective-C可以调用函数sqlite3_exec实现设置,语句如下: sqlite3_open(DATABASE, &db); sqlite3_exec(db, "PRAGMA synchronous...其中我们注意采用NSSQLiteStoreType类型,这样底层存储就采用了SQLite数据库,SQLite数据库的优点也能发挥出来。

23020

YYCache 源码解析(二):磁盘缓存的设计与缓存组件设计思路

接口的设计上,YYDiskCache与YYMemoryCache是高度一致的,只不过因为有些时候大文件的访问可能会比较耗时,所以框架作者保留了与YYMemoryCache一样的接口的基础上,还在原来的基础上添加了...上面的sqlite3_stmt可以看作是一个已经把sql语句解析了的、用sqlite自己标记记录的内部数据结构。...而sqlite3_bind_text和sqlite3_bind_int是绑定函数,可以看作是将变量插入到字段的操作。...为什么不选择数组:数组中元素在内存的排列是连续的,对于寻址操作非常便利;但是对于插入,删除操作很不方便,需要整体移动,移动的元素个数越多,代价越大。...而链表恰恰相反,因为其节点的关联仅仅是靠指针,所以对于插入和删除操作会很便利,而寻址操作缺比较费时。由于LRU策略中会有非常多的移动,插入和删除节点的操作,所以使用双向链表是比较有优势的。

1.9K20

Realm、WCDB与SQLite移动数据库性能对比测试

这里测试用的是纯SQLite,没有用FMDB。 SQLite3: 9万条数据基础上连续单条插入一万条数据耗时:1462ms。...按照参考资料[3]中的测试结果,Realm插入速度上比SQLite慢,比用FMDB快,而查询是比SQLite快的。...而WCDB的表现很让人惊喜,其插入速度非常快,以至于比SQLite都快了一个量级,要知道WCDB也是基于SQLite扩展的。...NSData及NSString属性不能保存超过16M数据,如果有大的可以分块。...五、WCDB优缺点 优点: 实际体验后,WCDB的代码体验非常好,代码量基本等于Realm,都是SQLite的一半,风格上比Realm更接近于OC原本的风格,基本已经感受不到是写数据库的SQL操作。

3.1K10

【IOS开发基础系列】数据持久化专题

NSData *theData = [NSData dataWithContentsOfFile: filename];  //创建一个NSKeyedUnarchiver实例对数据进行解码。...因为客户端和服务器同一进程空间运行。SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要的内存,其它开销很小,适合用于嵌入式设备。...SQLite支持常见的数据类型, 如: 4.3 iOS中使用SQLite3         为了能够iOS中使用SQLite3需要是将libsqlite3.dylib类库添加到Xcode工程中,工程的...= SQLITE_OK          sqlite3_open打开数据库,注意:sqlite3中的函数都是使用C字符串[self dataFilePath] UTF8String]是将NSString...sqlite3_bind_text(statement, 3, [studentClass.text UTF8String], -1, NULL);             //执行插入

20520

YYCache 源码剖析:一览亮点

[_lru bringNodeToHead:node]; } else { //2 若缓存中没有,创建一个内存,将该结点插入到头部 node = [_YYLinkedMapNode...YYDiskCache 的磁盘缓存处理性能非常优越,作者测试了数据库和文件存储的读写效率:iPhone 6 64G 下,SQLite 写入性能比直接写文件要高,但读取性能取决于数据大小:当单条数据小于...磁盘缓存的核心类是 YYKVStorage,注意该类是非线程安全的,它主要封装了 SQLite 数据库的操作和文件存储操作。 后文的剖析大部分的代码都是 YYKVStorage 文件中。...(1)磁盘缓存的文件结构 首先,需要了解一下作者设计的磁盘中的文件结构(YYKVStorage.m中作者的注释): /* File: /path/ /manifest.sqlite... path 下面有 sqlite 数据库相关的三个文件,以及两个目录(/data 和 /trash),这两个目录就是文件存储方便直接读取的地方,也就是为了实现上文说的高于某个临界值时直接读取文件比从数据库读取快的理论

1.4K61

程序员面试闪充--iOS密码学

字节代码的编码方式之一,Base64 要求把每三个8Bit 的字节转换为四个6Bit 的字节(38 = 46 = 24 ),然后把6Bit 再添两个高位0 ,组成四个8Bit 的字节,也就是说,转换后的字符串理论上将要比原来的长...加盐(Salt):明文的固定位置插入随机串,然后再进行MD5 先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序。...所以就算黑客中途截取了密码的密文 也能在1分钟只能破译才能有效,大大加强了安全性。...六、指纹识别 指纹识别功能是 iphone 5S之后推出的.SDK是 iOS 8.0 推出,它的出现简化移动支付环节,迅速占领了移动支付市场。...1.本地数据加密 iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息 2.URL编码加密 iOS应用防反编译加密技术之二:对程序中出现的

1.5K110

实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed

首先是需要显示加载 @3x 的图片: NSString * imgPath = [mainBundle pathForResource:@"sample@3x" ofType:@"png"]; 此时代码,iPhone...(@"加载后的图片尺寸:%@",[NSValue valueWithCGSize:self.sampleImageView.image.size]); 但是,此处有一个问题.@3x总是被解读为三倍图,iPhone...上,正是我们需要的尺寸,但是iPad上,尺寸就有些偏小了.我们iPad上,通常总是需要将此张图按照@2x图来显示.这是一个规律!...做过iPhone和iPad通用图标尺寸适配的童鞋,应该早就注意到了. 所以,现在要解决的关键技术问题是:如何把 @3x图,iPad上按照@2x图来解读?...相对完整代码如下,最终输出的图片尺寸iPhone上为原始尺寸的1/3,iPad上为原始尺寸的1/2,正是我们需要的: NSString * bundlePath = [[NSBundle mainBundle

1.1K60

深入源码理解YYCache 、SDWebImage、AFNetworking、NSCache 缓存方式与对比

BOOL _releaseOnMainThread; //是否异步释放缓存对象 BOOL _releaseAsynchronously; } //双向链表表头插入节点 -...YYDiskCache YYCache的磁盘缓存YYDiskCache的实现相比就复杂一些了,作者经过大量调研和实验后发现,SQLite对于数据的写入性能高于直接写文件,但是对于读性能来说需要考虑数据的大小...在看一下文件系统的目录结构和数据库表结构: File: /path/ /manifest.sqlite /manifest.sqlite-shm /manifest.sqlite-wal...插入一条数据 - (BOOL)_dbSaveWithKey:(NSString *)key value:(NSData *)value fileName:(NSString *)fileName extendedData...[self _fileWriteWithName:filename data:value]) { return NO; } //将数据插入到数据库中

2.9K71

使用iOS原生sqlite3框架对sqlite数据库进行操作

使用iOS原生sqlite3框架对sqlite数据库进行操作 一、引言       sqlite数据库是一种小型数据库,由于其小巧与简洁,移动开发领域应用深广,sqlite数据库有一套完备的sqlite...需要操作sqlite数据的文件中导入如下头文件: #import  数据库文件的操作是由一个sqlite3类型的指针操作管理的,如下方法进行数据库的打开: sqlite3 *sqlite...; sqlite3_open(dataBaePath, &sqlite) sqlite3_open方法返回一个int值,实际上,使用libsqlite3框架中的大多方法时都会返回一个int值,这个int...NSData * value = [NSData dataWithBytes:data length:length];                     [dic  setObject:value...NSData * value = [NSData dataWithBytes:data length:length];                     [dic  setObject:value

2.1K10

iOS应用数据存储(数据持久化)的常用方式一、iOS数据持久化方式二、应用沙盒(应用程序的文件夹)三、使用方法

(4)SQLite3,当非常大量的数据存储时使用 (5)Core Data,就是对SQLite的封装 关于bundle路径和sandbox沙河路径: (1)bundle路径:应用程序 (APP)...lastObject] stringByAppendingPathComponent:@"test.plist"]; 参数1:第一个参数指定了搜索的路径名称,NSDocumentDirectory表示是Documents...中寻找,NSCachesDirectory的话就是cache文件夹中寻找 常用枚举: NSDocumentDirectory NSCachesDirectory 参数2: NSUserDomainMask...如果父类也遵守了NSCoding协议,应该在encodeWithCoder:方法中加上一句[super encodeWithCode:encode];确保继承的实例变量也能被编码,即也能被归档 (2)initWithCoder...来进行归档对象,NSData可以为一些数据提供临时存储空间,以便随后写入文件,或者存放从磁盘读取的文件内容。

2.5K70

防护IOS APP安全的几种方式(详解)

1.URL编码加密 对iOS app中出现的URL进行编码加密,防止URL被静态分析 2.本地数据加密 对NSUserDefaults,sqlite存储文件数据加密,保护iOS app的帐号和关键信息...虽然是使用HTTPS,但是从安全方面考虑,很多情况下还是需要对url的参数进行加密的. c. 不管是get请求还是post请求,都可以对后边的参数进行加密,这里说下post请求。...解密:先base64解密,然后AES128解密即可还原数据 3.加密代码 加密之前的代码 : NSMutableDictionary *para = [NSMutableDictionary dictionary...*data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSData *aaa = [data AES128EncryptWithKey:@"dt8888...分类,增加两个方法 //加密 - (NSData *)AES128EncryptWithKey:(NSString *)key { char keyPtr[kCCKeySizeAES128

2K31

IOS中获取各种文件的目录路径的方法

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。...(NSHomeDirectory()), 手动保存的文件documents文件里 Nsuserdefaults保存的文件tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下...iphone沙盒(sandbox)中的几个目录获取方式: [cpp] view plain copy // 获取沙盒主目录路径   NSString *homeDir =...nil error:nil]; //取得一个目录下得所有文件名 NSArray *files = [fm subpathsAtPath: [self dataFilePath] ]; //读取某个文件 NSData...*data = [fm contentsAtPath:[self dataFilePath]]; //或者 NSData *data = [NSData dataWithContentOfPath:[

5.3K20

IOS获得各种文档文件夹路径的方法

iphone沙箱模型的有四个目录,各自是什么,永久数据存储一般放在什么位置。得到模拟器的路径的简单方式是什么. documents,tmp。app,Library。...手动保存的文件documents文件中 Nsuserdefaults保存的文件tmp目录里 1、Documents 文件夹:您应该将全部de应用程序数据文件写入到这个文件夹下。...iphone沙盒(sandbox)中的几个文件夹获取方式: // 获取沙盒主文件夹路径 NSString *homeDir = NSHomeDirectory(); // 获取Documents...error:nil]; //取得一个文件夹下得全部文件名称 NSArray *files = [fm subpathsAtPath: [self dataFilePath] ]; //读取某个文件 NSData...*data = [fm contentsAtPath:[self dataFilePath]]; //或者 NSData *data = [NSData dataWithContentOfPath

1.5K30
领券