从 BLOB(FMDB 结果)转换为 NSData 对象

Posted

技术标签:

【中文标题】从 BLOB(FMDB 结果)转换为 NSData 对象【英文标题】:Convert from BLOB (FMDB result) to NSData Object 【发布时间】:2018-03-29 08:31:20 【问题描述】:

在我以前的应用程序中,数据是这样从磁盘读取的:

NSData* image = [NSData dataWithContentsOfFile:pngImage];

我将所有.png 数据作为BLOB 移动到我查询的SQLite 数据库中

FMDatabase *database = [FMDatabase databaseWithPath:pathToDatabase];
[database open];
NSString *sqlSelectQuery = @"SELECT ....";
FMResultSet *resultFromDatabase = [database executeQuery:sqlSelectQuery];

如何将数据库中的返回 (BLOB) 转换为 NSData 对象?

【问题讨论】:

【参考方案1】:

FMDB 为此提供了method:

    NSData *image = [databaseResult dataForColumn:@"image_column"];

【讨论】:

【参考方案2】:

您可以将 BLOB 转换为 NSData:

NSMutableData *data = [NSMutableData dataWithCapacity:blobs.count];

for (NSNumber *number in blobs)

    uint8_t byte = (uint8_t)[number intValue];
    [data appendBytes:&byte length:1];

【讨论】:

从这里复制粘贴***.com/questions/9556170/…。

以上是关于从 BLOB(FMDB 结果)转换为 NSData 对象的主要内容,如果未能解决你的问题,请参考以下文章

将 NSData 转换为 NSString 的空结果

将电容器相机结果转换为 Blob

使用 fmdb 无法更新 blob 类型数据

将 JSON 数据从 NSData 转换为 NSDictionary

从 NSData 为 localNotification 设置自定义声音

从 NSData 的 NSMutableArray 转换为 NSString 的 NSMutableArray?