我正在尝试尽可能地优化我的应用,请您建议哪种方法最好,并建议。
@implementation Methode1
+(BOOL)Isdone{
BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:@"DEVICE_TYPE"];
if(!result){
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"DEVICE_TYPE"];
}
return result;
}
@end
@implementation Methode2
NSString * const deviceTypeKey @"DEVICE_TYPE";
+(BOOL)Isdone{
BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:deviceTypeKey];
if(!result){
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:deviceTypeKey];
}
return result;
}
@end
@implementation Methode3
#define deviceTypeKey @"DEVICE_TYPE"
+(BOOL)Isdone{
BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:deviceTypeKey];
if(!result){
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:deviceTypeKey];
}
return result;
}
@end
在上面提到的三种方法中,哪种方法最有效,为什么?
答案 0 :(得分:3)
他们中没有一个会在记忆方面产生丝毫的重大差异。编译器会为您优化常量字符串文字。
更重要的是程序员错误和可维护性的风险 - 因此使用常量或定义默认密钥是可行的方法。我自己一直是个常客。
另外 - 请参阅@ JustSid的评论。你需要使用工具来寻找真正的问题,不要挑选随机的代码并为之烦恼。首先写入维护性和可读性,然后通过性能分析找出实际问题。