• FOUNDATION_EXPORT 或#define 或 extern


    //我的.h文件
    
    FOUNDATION_EXPORT NSString * const kMyConstantString;  
    FOUNDATION_EXPORT NSString * const kMyConstantString2;
    //.m文件是这样定义的
    
    NSString * const kMyConstantString = @"Hello";
    NSString * const kMyConstantString2 = @"World";
    //还有一种是常用的#define方法了
    #define kMyConstantString @"Hello"

    应该使用FOUNDATION_EXPORT还是#define来定义常量?

    区别:

    使用第一种方法在检测字符串的值是否相等的时候更快.

    对于第一种你可以直接使用(stringInstance == MyFirstConstant)来比较,

    而define则使用的是这种.([stringInstance isEqualToString:MyFirstConstant])

    哪个效率高,显而易见了.

    第一种直接比较的是指针地址,

    而第二个则是一一比较字符串的每一个字符是否相等.

    来源地址:点击打开链接

    //TTGClass.h
    extern NSString * const TTGClassWorkBeginNotification;
    
    //TTGClass.m
    NSString * const TTGClassWorkBeginNotification = @"TTGClassWorkBeginNotification";

    k”开头的命名,也算是Apple的规范了吧,内部常量统一以“k”开头。

     

     

    关键:

    • 头文件中只是做声明,不做定义。所以用extern表示常量在别处定义的,尽量隐藏细节。
    • 同类名做常量名字的开头,这个非常关键,因为Objective-C里面没有像Java那样的“包”机制,所以必须靠命名来划分不同的类,常量当然也要遵循这个规则。
    • NSString,确定的类型;const,表明常量;Notification后缀,表明用途。这些都是需要注意的
  • 相关阅读:
    站立会议第七天
    站立会议第六天
    站立会议第五天
    站立会议第四天
    inotify简题
    搭建企业版yum仓
    ssh及ssh-key
    shell变量
    如何下载scp、wget、inotify及如何偷包
    rsync
  • 原文地址:https://www.cnblogs.com/YH-Coding/p/5325858.html
Copyright © 2020-2023  润新知