IOS开发中,文本解析,键值处理等都会用到常量项目中大部分的处理都是用的C的预处理#define来处理常量
,比如:#define ELEMENT        “element”
#define NODE             "node"
复制代码
等到用的时候,直接加入这个头文件就可以了。但是有问题,因为这样定义出来的常量值是c字符串,不能直接使用OBJC中NSString类中提供的方法,很是不方便,所以博主写了可以这样做:
#import
extern NSString * const kInitURL;
@interface Constants : NSObject { 可以省略
}
@end
复制代码
这里使用到extern c关键字,表示这个变量已经声明,只是引用。const关键字表示变量是常量,不可修改。然后在.m文件中可以这样写
#import "Constants.h"
NSString * const kInitURL = @"http://marshal.easymorse.com";
@implementation Constants  可以省略
@end 但宏定义有局限性,没办法表示诸多的数据类型,另外编程规范中也不推荐大量的使用宏定义,所以博主的方法看来确实是最佳实践之一,其实除此以外也有很多方法可以用,比如不使用const关键字,也可以使用static关键字定义静态变量。都可以,无论哪种方法都可以实现功能,方法优劣只能在易用性,可读性和执行效率上体现出来,

转载于:https://www.cnblogs.com/mshong1616/p/5117127.html

IOS开发中常量的处理相关推荐

  1. ios开发中的字符串常量如何处理

    ios开发中的字符串常量如何处理 转载于:https://www.cnblogs.com/so-magic/p/4623547.html

  2. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  3. iOS 开发中的多线程

    线程.进程 什么是线程.进程   有的人说进程就像是人的脑袋,线程就是脑袋上的头发~~.其实这么比方不算错,但是更简单的来说,用迅雷下载文件,迅雷这个程序就是一个进程,下载的文件就是一个线程,同时下载 ...

  4. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

    iOS 应用程序之间(1) 在iOS开发中,经常需要调用其它App,如拨打电话.发送邮件等.UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的url参数的 ...

  5. iOS开发中各种关键字的区别

    1.一些概念 1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存. 深Copy:内存的复制,两块内存是完全不同的, 也就是两个对象指针分别指向不同的内存,互不干涉. 2.atom ...

  6. Xamarin iOS开发中的编辑、连接、运行

    Xamarin iOS开发中的编辑.连接.运行 创建好工程后,就可以单击Xamarin Studio上方的运行按钮,如图1.37所示,对HelloWorld项目进行编辑.连接以及运行了.运行效果如图1 ...

  7. ios开发中计算代码运算时间_iOS日历、日期、时间的计算

    时间和日历的计算在iOS开发中经常看到,经常看到大家在百度,开源中国等搜索这些答案.今天写个简单的时间和日历有关的计算. 获取一个月的总天数 1.获取当月的天数 - (NSInteger)getNum ...

  8. IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

    IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add bu ...

  9. iOS开发中标签控制器的使用——UITabBarController

    iOS开发中标签控制器的使用--UITabBarController 一.引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理 ...

最新文章

  1. 配置mysql主从服务器
  2. 500个普通人名_2020年世界500强汽车行业排名:大众公司第一,丰田汽车公司第二...
  3. 构建Java并发模型框架
  4. BeautifulSoup_第二节
  5. Oracle性能调整的误区
  6. java concurrent 锁_java并发机制锁的类型和实现
  7. android源码包下载
  8. 声明为数组定义为指针,声明为指针定义为数组
  9. macos系统自动安装mysql_macos系统安装mysql
  10. 复杂性思维中文第二版 六、生命游戏
  11. Shell:函数返回值接收
  12. 使用maven打包项目执行clean时报错clean报错Failed to clean project
  13. 已知空间三点求圆心c语言,空间三点计算圆心坐标和半径
  14. POWER SWOT分析
  15. 计算机英语课文朗读,倍速英语点读电脑版
  16. Ubuntu 重置密码
  17. AcWing237. 程序自动分析
  18. win7制作ntp服务器,win7系统搭建ntp服务器的操作方法
  19. MSAA,SSAA,CSAA,CFAA...如何正确地为您的游戏设置抗锯齿模式
  20. MySQL数据库的完全卸载

热门文章

  1. mybatis02--增删改查
  2. SQLMap用户手册【超详细】
  3. 【Java每日一题】20170113
  4. SpringFramework的简介
  5. ibatis解决sql注入问题
  6. 视觉基础与开发思路-第九节形态学操作
  7. Live555研究之二Sleep实现
  8. 自然语言处理之AI深度学习顶级实战
  9. confirm弹框修改按钮确认取消为是否
  10. 用Git虚拟文件系统来解决大型存储问题