我想知道是否有更好的方法将int转换为字符串 基本上我有一个计数器和一本字典
//
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
int cnt = 0;
//
// insert an object
//
id object = [[[SomeObject alloc] init] autorelease];
NSString *key = [NSString stringWithFormat:@"%d", cnt++];
[dict setObject:object forKey:key];
将int转换为字符串的时间比我预期的要多。 那么有更好的解决方法吗?
答案 0 :(得分:5)
我认为这稍微快一点:
NSString* yourString = [@(yourInteger) stringValue];
这个
[dict setObject:yourObj forKey:[@(yourInt) stringValue]];
看起来比以下更好:
[dict setObject:yourObj forKey:[NSString stringWithFormat:@"%d",yourInt]];
但是从速度和风格的角度来看,我们真的在这里分裂。
答案 1 :(得分:1)
Interesting link about nsfoundation
引用:
NSString创建并不是特别昂贵,但在使用时 紧密循环(例如,作为字典键),+ [NSString stringWithFormat:]可以通过提高性能得到显着提升 替换为C中的asprintf或类似函数。
和代码示例:
NSString *firstName = @"Daniel";
NSString *lastName = @"Amitay";
char *buffer;
asprintf(&buffer, "Full name: %s %s", [firstName UTF8String], [lastName UTF8String]);
NSString *fullName = [NSString stringWithCString:buffer encoding:NSUTF8StringEncoding];
free(buffer);
答案 2 :(得分:0)
你是否明确需要它作为一个字符串?或者只是使用文字(注意在这种情况下它将是NSNumber):
[dict setObject:object forKey:@(cnt++)];