更智能的方法来制作查找密钥

时间:2016-03-16 13:19:16

标签: objective-c

我的流程花费的时间比我想象的要长。当我运行Instruments时,它表明我用来为NSDictionary查找创建密钥的方法大约占总时间的25%。最终的结果是,如果我可以优化这个密钥生成,我可以节省几秒钟。字符串生成如下:

[NSString stringWithFormat:@"%ld_%.0f_%.0f_%d%@", (long)zoomLevel, mapPoint.x, mapPoint.y, dataType, suffix];

我觉得解析格式字符串是这里的难点,但我不确定如何将这些变量粉碎在一起来创建密钥。

修改

当给出完全相同的输入时,我需要生成完全相同的键。所以没有UUID,时间戳等

1 个答案:

答案 0 :(得分:2)

您可以使用sprintf代替执行much faster[NSString stringWithFormat:...]

char cString[256];
sprintf(cString, "%ld_%.0f_%.0f_%d%s", (long)zoomLevel, mapPoint.x, mapPoint.y, dataType, suffix.UTF8String];
NSString *string = [[NSString alloc] initWithUTF8String:cString];

请确保在声明char数组时为字符串分配足够的空间。