当前位置: 首页 > news >正文

IOS开发中常量的处理

原文链接:http://marshal.easymorse.com/archives/4149

之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量。比如,可以做个头文件,然后在需要的类文件中import,使用常量。

但这不是最佳实践。这样做可能是最好的方式,首先在比如叫Constants.h的头文件中:

#import

extern NSString * const kInitURL;

@interface Constants : NSObject {

}

@end

这里使用到extern c关键字,表示这个变量已经声明,只是引用。const关键字表示变量是常量,不可修改。

在objc的约定里,常量也是大小写混排的驼峰命名规则,首字母小写,另外,第一个字母是k。

然后,在Constants.m文件中:

#import "Constants.h"

NSString * const kInitURL = @"http://marshal.easymorse.com";

@implementation Constants

@end

 

在这里给常量kInitURL赋值。

如何使用常量?只需在所需的m文件引入Constants头文件,下面是使用示例:

#import "BasicDemosViewController.h" 
#import "Constants.h"

@implementation BasicDemosViewController

// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
    NSLog(@"load view: %@",kInitURL); 
}

使用这种方式,比通过宏预定义的优点是,可以对常量进行指针比较操作,这是#define做不到的。即:

[myURL isEqualToString:kInitURL];

转载于:https://www.cnblogs.com/yilia/p/3433632.html

相关文章:

  • Spring Boot基本介绍【学习笔记】
  • 网管与企业
  • EFI Windows 7 activition
  • 漫游Ruby
  • 深圳某银行ATM间—智慧管理项目
  • 详解Android中AsyncTask的使用
  • es7 --- 新特性
  • 通过mdadm命令调用内核MD模块实现软Raid
  • 二级下拉菜单制作
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • 『Go 内置库第一季:strings』
  • netty
  • C++ 0x 之左值与右值、右值引用、移动语义、传导模板
  • Win2008学习(十一),解决Remote App Web访问的证书问题
  • 总结第一波~~~
  • 【5+】跨webview多页面 触发事件(二)
  • jquery ajax学习笔记
  • Js基础知识(一) - 变量
  • Mocha测试初探
  • Node项目之评分系统(二)- 数据库设计
  • PAT A1050
  • python 装饰器(一)
  • React as a UI Runtime(五、列表)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vue中实现单选
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 如何胜任知名企业的商业数据分析师?
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信小程序设置上一页数据
  • 我感觉这是史上最牛的防sql注入方法类
  • 学习Vue.js的五个小例子
  • 延迟脚本的方式
  • 因为阿里,他们成了“杭漂”
  • 在Mac OS X上安装 Ruby运行环境
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 【云吞铺子】性能抖动剖析(二)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • !$boo在php中什么意思,php前戏
  • #{}和${}的区别是什么 -- java面试
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $ git push -u origin master 推送到远程库出错
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (南京观海微电子)——COF介绍
  • (三)mysql_MYSQL(三)
  • (十)T检验-第一部分
  • (轉)JSON.stringify 语法实例讲解
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET 材料检测系统崩溃分析
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net对接阿里云CSB服务
  • /proc/stat文件详解(翻译)