Comments (8)
如果采用上面的设计。
- (BOOL)setObject:(id)object forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
就可以采用另外的方式实现。
- (BOOL)setObject:(id<NSCoding>)value forKey:(NSString *)key {
if (key.length <= 0) {
return NO;
}
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:obj];
return [self setData:data forKey:key];
}
from mmkv.
这样子在 getValue 的时候不再需要传入对应的 class 了。
- (id)getObjectForKey:(NSString *)key {
if (key.length <= 0) {
return nil;
}
NSData *data = [self getDataForKey:key];
if (data.length > 0) {
return [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
return nil;
}
from mmkv.
Because we don't want anything to do with NSCoding. MMKV is designed to be generic purpose. Being generic means you can archive your object into data by using any algorithm you like, such as protobuf. In fact, we get something called PBCoding inside WeChat, which looks like NSCoding, but use protobuf protocol to archive/unarchive object.
As #10 has suggested, we might add a setObject:(id<NSCoding>)value forKey:(NSString*)key
interface in the future. That is under consideration.
from mmkv.
恩,我大致了解了你们内部有一个 PBCoding 的东西。所以理解了你们做的方式。
但是开源的部分是没有 PBCoding 的。所以现在使用起来相对是有点变扭的。你觉得呢?
期待后续改动,我先自己项目适配一下吧~
from mmkv.
可以有新的 pod 版本吗?我这边要做一些项目定制化,需要一个支持 Swift 改版的 pod
在 podspec 中无法指定分支。
from mmkv.
可以有新的 pod 版本吗?我这边要做一些项目定制化,需要一个支持 Swift 改版的 pod
在 podspec 中无法指定分支。
The changes made on Swift interface has been merged into master. But a new release is not ready yet. For the time being, you can change your pod file as bellow:
pod 'MMKV', :git => 'https://github.com/Tencent/MMKV.git'
A fresh pull of master should suit your need.
from mmkv.
恩恩,辛苦了~
from mmkv.
Supported with #78 , checkout release note.
from mmkv.
Related Issues (20)
- 初始化so 崩溃 HOT 3
- Bad JNI version returned from JNI_OnLoad HOT 3
- mmkv.decodeBytes() return null when encode an empty byte array HOT 3
- A native crash in colorOS-v1.3.2 HOT 11
- iOS17 系统 bugly卡顿上报有出现大量的 主线程死锁 HOT 5
- Why do I set the 'expireDurationInSecond' parameter but they don’t expire after the expiration time? HOT 2
- got crash on CodedInputData HOT 10
- [Help] Cross complie for aarch64(arm64) hosted on amd64 questions HOT 13
- Macro "release_key" defined in "MMKV.h" pullute the global scope. HOT 2
- Does MMKV implement custom encryption? HOT 2
- Android 接入1.3.2版本发生崩溃 HOT 4
- iOS multiProcess bugly会有卡死日志 HOT 1
- privacy manifest for third part sdk HOT 3
- 请问mmkv会在本地存储明文文件么? HOT 2
- flutter开发,升级AGP >=8,报错 HOT 2
- MMKV Crash HOT 11
- Duplicate class dalvik.annotation.optimization.FastNative HOT 5
- iOS singleProcessModel 数据丢失问题 HOT 8
- [iOS] Issues when archiving project HOT 3
- [POSIX] can't find ::unlink symbol HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mmkv.