最近开始要弄iPhone开发,赶鸭子上架,呵呵,没关系,咱是IT民工,搞得定的
由于本人有些编码风格癖,不能容忍字符串常量在代码中硬编码,所以IOS下的常量如何处理居然是我在写HelloWorld的时候就要考虑的事了,汗啊~
从网上找了此篇文章,较好,为了避免日后原文消失,特此转载。
原文地址:http://marshal.easymorse.com/archives/4149
------------------------------------------------------
之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量。比如,可以做个头文件,然后在需要的类文件中import,使用常量。
但这不是最佳实践。这样做可能是最好的方式,首先在比如叫Constants.h的头文件中:
#import <Foundation/Foundation.h>
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];
分享到:
相关推荐
包含常量与变量、基本数据类型,以及Swift语言中的新数据类型—元组型和可选型的内容。同时还讲解了运算符和表达式、流程控制语句、字符和字符串、集合类型、函数和闭包。此外,Swift面向对象的枚举、结构体、类,...
iOS软件代码规范 1 对项目管理者有帮助 2 开发入门者有帮助 目 录 前 言 4 1. 指导原则 5 2. 布局 5 2.1. 文件布局 6 2.2. 基本格式 8 2.3. 对齐 9 2.4. 空行空格 11 2.5. 断行 13 3. 注释 14 4. 命名规则 17 4.1....
对于程序中经常用到的一些常量或者简短的函数我们通常使用宏定义来处理,这样做的好处是对于程序中所有的配置我们可以统一在宏定义中进行管理,而且由于宏定义是在程序编译之前进行替换相比定义成全局变量或函数效率...
Swift是一种由苹果公司开发的编程语言,用于iOS、macOS、watchOS和tvOS应用程序的开发。它是一种现代化的编程语言,结合了C和Objective-C的优点,并添加了许多新的特性和功能。 一些Swift的重要知识点包括: 类和...
版本: 1.6.8(2021-03-15) 更新日志: ...处理后的符号(符号的概念见上面的术语解释)更接近开发人员的命名习惯,处理后的代码可阅读性高(没有使用随机的单词组合),这也是过机审的关键 支持OC
此外,Swift面向对象的枚举、结构体、类,以及内存管理、协议与抽象类型、错误处理、链式编程、iOS开发中的常见概念等内容也有所涉及。在第八章我们使用Swift语言实现了栈、队列、二叉树等数据结构,还实现了常见的8...
在本指南中,我们将深入探讨Swift编程语言,这是一种由Apple设计的现代、安全、高效的编程语言,用于开发iOS、macOS、watchOS和tvOS应用程序。我们将从Swift的基础语法开始,通过案例和项目资源,帮助您快速入门并...
:hammer_and_wrench: 开发环境和使用库开发环境 使用图书馆图书馆目的版本Alamofire 服务器通讯5.4.1 翠鸟图像处理5.15.8 SnapKit 自动版面5.0.1 Lottie-iOS 动画处理3.1.9 FSC日历创建日历视图2.8.2 覆盖容器...
12.4.2 定义应用程序常量 311 12.4.3 实现QuartzFunView框架 312 12.4.4 向视图控制器中添加输出口和操作 314 12.4.5 更新QuartzFunViewContro-ller.xib 316 12.4.6 绘制直线 317 12.4.7 绘制矩形和椭圆形 319 12.4....
一些Swift语言案例资源专注于介绍Swift的基础语法和特性,如变量、常量、类型推断、控制流等。这些资源适合初学者入门,帮助他们掌握Swift语言的基本概念和编程技巧。 另一些资源则关注于Swift的高级功能和实际应用...
目前为Android开发:无需请求短信权限即可阅读消息。 用法 生成可接受的 不要在运行时使用AppSignatureHelper生成哈希消息。 在服务器或客户端上的应用程序内部将哈希存储为常量。 向此程序包添加依赖项 使用...
iOS 或 Windows Phone 开发感兴趣,请务必查看我们的 和 文档。 概括 使用 Gradle 及其推荐的项目结构 将密码和敏感数据放在 gradle.properties 中 不要编写自己的 HTTP 客户端,使用 Volley 或 OkHttp 库 使用 ...
// 在看看这个头文件C标准库下 基于char* 的字符处理函数库 #include<string.h> // 在标准化以后他变成了这样 #include<cstring> // 但是很多朋友还看见过这个字符串处理函数库,他包含了新的...
C++大学教程(目录) 第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------...