小编Bar*_*obs的帖子

CC_SHA1之后的NSData到NSString

基于此问题,我写了一个类NSStringhash NSString使用SHA1实例.但是,我的实施有问题.有趣的是,记录NSData实例确实给出了预期的哈希,但是当我想从该NSData实例创建一个NSString时,我只是得到了null.

- (NSString *)sha1 {
    NSData *dataFromString = [self dataUsingEncoding:NSUTF8StringEncoding];
    unsigned char hashed[CC_SHA1_DIGEST_LENGTH];

    if ( CC_SHA1([dataFromString bytes], [dataFromString length], hashed) ) {
        NSData *dataFromDigest = [NSData dataWithBytes:hashed length:CC_SHA1_DIGEST_LENGTH];

        NSString *result = [[NSString alloc] initWithBytes:[dataFromDigest bytes] length:[dataFromDigest length] encoding:NSUTF8StringEncoding];

        return result;

    } else {

        return nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

hash cocoa-touch

3
推荐指数
1
解决办法
1998
查看次数

解耦 MySQL 数据与易用性

假设一个简单的酒店预订数据库有三个表。

表 1:预订 此表包含入住和退房日期以及一间或多间客房的参考和优惠券(如果适用)。

表 2:房间 此表包含所有酒店房间的数据,包括每晚价格和床位数。

表 3:优惠券 此表包含所有优惠券的数据。

选项 1: 如果您想了解某个特定月份的预订以及每次预订的总费用,您必须获取预订、每次预订的房间和优惠券(如果有的话) .

有了这些数据,您就可以计算预订的总金额。

选项#2: 然而,还有另一种选择,即在预订表中存储总成本和折扣,以便更容易获取这些计算。缺点是您的数据变得更加依赖,并且处理起来更不灵活。我的意思是,每次更改与预订相关联的房间或优惠券时,您都必须手动更新预订表的总成本和折扣。

在性能(选项#2)版本数据独立性(选项#1)方面通常推荐什么。

更新:这是一个 MySQL 数据库,目前有超过 500 000 行(保留),但正在迅速增长。我想在早期阶段优化数据库性能,以确保 UX 保持快速和响应。

mysql database database-design relational-database

3
推荐指数
1
解决办法
1252
查看次数

Backbone:更改事件后更新模型

假设具有以下属性的Backbone模型: - 小计 - 折扣 - 总计

每当对折扣进行更改时,总需要更新,我希望模型能够解决这个问题.

我已经尝试将更新方法(在模型中定义)绑定到模型的更改事件(在模型的初始化方法中),以便对于每个更改事件,模型将更新总属性,但这似乎不起作用.

var Cost = Backbone.Model.extend({
    initialize  : function() {
        this.bind('change', this.update);
    },

    update      : function() {
        // UPDATE LOGIC
    }
});
Run Code Online (Sandbox Code Playgroud)

当模型触发更改事件时,让模型触发(自己的)方法的最佳方法是什么?

javascript backbone.js

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

可能的FMDatabase/FMResultSet错误

即使我很少遇到FMDatabase的问题,我今天也注意到了一些奇怪的行为,并且想知道这是一个错误还是由于我自己的错误.

NSString *query = [NSString stringWithFormat:@"SELECT * FROM TABLE_A WHERE modelId = %lu", modelId];
FMResultSet *resultSet = [db executeQuery:query];

while ([resultSetIPTCProperties next]) {
    NSLog(@"MODEL ID: %lu", [resultSetIPTCProperties intForColumn:@"stringId"]);
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这一切都运行正常,但我想安全地使用[db hasAnotherRow]使用if语句在while循环之前,但即使结果集包含结果,也会返回NO.

当我将生成的字典(使用FMResultSet的resultDict方法)记录到控制台时,我收到来自FMResultSet的警告"警告:此集合中似乎没有列." 即使我可以在我的while循环中使用它们.

我在这里错过了什么吗?

macos cocoa fmdb

2
推荐指数
1
解决办法
1627
查看次数

如何正确重置应用程序的iCloud存储

我现在正在将iCloud添加到我的应用程序中,并且能够测试升级方案,我需要时不时地完全重置iCloud存储.

是否从设置中删除应用程序和应用程序数据?之前我做过,它引起了很多错误.

完全重置iCloud设置和存储以使应用程序启动的正确方法是什么,就像它是一个全新的应用程序安装一样?

干杯谢谢

objective-c ios icloud

2
推荐指数
1
解决办法
2152
查看次数