kanyun-inc / ytkkeyvaluestore Goto Github PK
View Code? Open in Web Editor NEWA simple Key-Value storage tool, using Sqlite as backend.
License: MIT License
A simple Key-Value storage tool, using Sqlite as backend.
License: MIT License
现在支持哪些类型的Value?谢谢!
存入一个为@(0),@(1),@"1",@"0",都出现异常,
NSData * data = [NSJSONSerialization dataWithJSONObject:object options:0 error:&error];
===== po object
@"1"
===== po [object class]
error: Couldn't materialize: couldn't allocate a temporary region for the result: failed to send packet: 'M103d60620,8:0000000000000000'
error: errored out in DoExecute, couldn't PrepareToExecuteJITExpression
上面那四种 我都试过了 都崩溃 这个虽然是系统的方法 但是 应该是没问题的 现在问什么崩溃,还望解答
Please add English translation.
唐巧,您好!
我详细看了一下源代码,有这个疑问。为什么不把tableName作为一个实例变量保存,这样调用方就不需要每次传进一个tableName。很多时候,提供keyValue的操作,其实,不关心tablename具体是什么。只要在初始化的时候,设置一次即可。请问,您之前是怎么做这个权衡的?
对于一些复杂的逻辑,比如多条件查询又比如更新某一个字段的值,请问如何做到呢?
比如
改成
会不会更好一点
使用过程中,发现单张table的大小有些夸张:
1、存储1万条数据,使用NSJSONSerialization转TEXT类型存储后的大小是4.4M;
2、改变表里存的json string数据类型为data后,改用NSKeyedArchiver将jsonObject转NSData,大小为61k;
请问是否有做过此类的测试?
测试代码如下:
YTKKeyValueStore *store = [[YTKKeyValueStore alloc] initDBWithName:@"test.db"];
NSString *tableName = @"zm_table";
[store createTableWithName:tableName];
// 测试存储 1万条数据的大小
NSString *key = @"1";
NSDictionary *user = @{@"id": @1,
@"name": @"tangqiao",
@"age": @30,
@"news": @"测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小",
@"detail":@"测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小测试存储 1万条数据的大小"};
NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < 10000; i++) {
[array addObject:user];
}
NSDictionary *dict = @{@"news": array};
[store putObject:dict withId:key intoTable:tableName];
测试形式:
NSData * data = [NSJSONSerialization dataWithJSONObject:object options:0 error:&error];
NSData *data1 = [NSKeyedArchiver archivedDataWithRootObject:object];
NSLog(@"JSONSerialization Data Size = %@",
[NSByteCountFormatter stringFromByteCount:data.length
countStyle:NSByteCountFormatterCountStyleFile]);
NSLog(@"KeyedArchiver Data Size = %@",
[NSByteCountFormatter stringFromByteCount:data.length
countStyle:NSByteCountFormatterCountStyleFile]);
测试结果:
2016-03-23 10:40:14.154 YTKKeyValueStore[68148:2019750] JSONSerialization Data Size = 4.4 MB
2016-03-23 10:40:14.154 YTKKeyValueStore[68148:2019750] KeyedArchiver Data Size = 61 KB
谢谢!
场景:
一个微博有很多个评论;显示该微博的所有评论;需要传递微博ID;
如果要删除某个评论,需要传递的是评论ID.
是否可以考虑支持上面的场景呢。
你好,在实际使用中,我们需要考虑数据库的打开与关闭操作吗?
为什么在 Podfile 中写
pod 'YTKKeyValueStore', :git => 'https://github.com/yuantiku/YTKKeyValueStore.git'
与
pod 'YTKKeyValueStore', '~> 0.1.2’
获取到的代码不同?
巧哥,你好,最近遇到一个很糟心的问题,正常使用着,启动做数据库升级判断user表是否存在,有的用户返回了NO,怀疑是数据库损坏,表丢失或者数据库打开失败(代码中没有对库表删除的操作),但是没法复现验证,巧哥觉得会是什么问题呢?
想用 YTKKeyValueStore 到自己的项目中,但又不想二次引入第三方库..
在 YTKKeyValueStore 中的 DELETE语句,DELETE from %@ where id like ?
通过 like 删除指定前缀的数据,会不会有一些被误删除?
巧哥你好。
YTKKeyValueStore提供了一个close方法,这个方法一般需不需要用呢?
如果不close,占用的系统资源多不多?
我发现close之后,没有api可以让我再打开数据库,就只能重新生成一个store对象了吗?
您好,我在插入数据的时候,插入了一个数组,JSON那一步没有报错,但是在插入的时候总是报 ERROR, failed to insert/replace into table这个错误,不知道是什么原因
为什么没有设计异步接口?
那几个SQL语句基本只调用一次,为何要定义成静态常量?
你好,对象模型该如何存储呢?
你好,我是新手,我想问怎么取出小于某个id的全部数据
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.