2

我正在尝试尽可能地优化我的应用程序,您能否建议哪种方法最好,并推荐。

@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

在上述三种方法中,哪一种最节省内存,为什么?

4

1 回答 1

3

它们都不会在记忆方面产生丝毫显着差异。常量字符串文字由编译器为您优化。

更重要的是程序员错误和可维护性的风险 - 因此,为您的默认键使用常量或定义是要走的路。我自己就是一个常数迷。

另外 - 请参阅@JustSid 的评论。您需要使用工具来寻找真正的问题,不要随意挑选代码并为它们苦恼。首先编写可维护性和可读性,然后通过分析发现实际问题。

于 2013-08-30T07:32:26.767 回答