相关疑难解决方法(0)

如何在iPhone上加密CoreData内容

我有一些信息,我想在iPhone应用程序上静态加密.我是iPhone开发的新手,有些我对CoreData以及它与视图的集成方式并不十分熟悉.我将数据作为JSON,但我可以轻松地将其放入SQLITE3数据库或任何其他支持数据格式.我将采取最简单的方法(a)加密和(b)与iPhone视图层集成.

每次启动应用程序时,用户都需要输入密码来解密数据.加密的目的是在用户丢失电话时防止数据被访问.

出于速度原因,我宁愿一次加密和解密整个文件,而不是加密数据库每一行中的每个字段.

注意:这是不一样的想法的问题929744,其目的是让用户从搞乱或看到的数据.使用时数据应完全透明.

另请注意:我愿意使用SQLCipher存储数据,但更愿意使用iPhone/CoreData框架上已有的东西,而不是经历冗长的构建/集成过程.

iphone encryption core-data

46
推荐指数
4
解决办法
3万
查看次数

可转换数据和二进制数据之间有什么区别

我最近开始研究核心数据,请任何人告诉我最新的可转换数据和二进制数据之间的区别.我需要将myClassObject存储在核心数据中.我创建了属性并将其类型定义为二进制数据,但在存储时我收到错误.

core-data objective-c ios

15
推荐指数
1
解决办法
5229
查看次数

为什么我的可转换Core Data属性不使用我的自定义NSValueTransformer?

我有一个核心数据应用程序,具有相当简单的数据模型.我希望能够将NSImage的实例作为PNG位图NSData对象存储在持久存储中,以节省空间.

为此,我编写了一个简单的NSValueTransformer,将NSImage转换为PNG位图格式的NSData.我在我的App委托中使用此代码注册值转换器:

+ (void)initialize
{
    [NSValueTransformer setValueTransformer:[[PNGDataValueTransformer alloc] init] forName:@"PNGDataValueTransformer"];
}
Run Code Online (Sandbox Code Playgroud)

在我的数据模型中,我将image属性设置为Transformable,并指定PNGDataValueTransformer为值转换器名称.

但是,我的自定义值转换器未被使用.我知道这一点,因为我已将日志消息放入我的值转换器-transformedValue:-reverseTransformedValue未记录的方法中,并且保存到磁盘的数据只是一个存档的NSImage,而不是它应该是的PNG NSData对象.

为什么这不起作用?

这是我的价值转换器的代码:

@implementation PNGDataValueTransformer

+ (Class)transformedValueClass
{
    return [NSImage class];
}

+ (BOOL)allowsReverseTransformation
{
    return YES;
}

- (id)transformedValue:(id)value
{
    if (value == nil) return nil;
    if(NSIsControllerMarker(value))
        return value;
    //check if the value is NSData
    if(![value isKindOfClass:[NSData class]])
    {
        [NSException raise:NSInternalInconsistencyException format:@"Value (%@) is not an NSData instance", [value class]];
    }
    return [[[NSImage alloc] initWithData:value] autorelease];
}

- (id)reverseTransformedValue:(id)value;
{ …
Run Code Online (Sandbox Code Playgroud)

cocoa image core-data objective-c

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

core-data ×3

objective-c ×2

cocoa ×1

encryption ×1

image ×1

ios ×1

iphone ×1