宏定义在app开发中的妙用

宏定义在开发中的妙用

- 作为常量:替换URL,数值等
- 作为常用代码
- 等价替换代码,可以当函数使用

使用规则

- 1.常量以小写k开头
- 2.使用下划线连接多个单词(全部大写)

示例

  • 1.替换URL(字符常量)
#define kURL_SAVE_CHAT_HISTORY @"http://115.29.40.117:8787/test/app/user/chat/save"
  • 2.替换常用代码

    一个自定义个RGB颜色

#define kLIGHT_YELLOW [UIColor colorWithRed:253/255.0 green:231/255.0 blue:211/255.0 alpha:1]//导航条的颜色

获得屏幕高度

#define kSCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
  • 3.替换常用的多个代码(不要有换行)

    **把一个常用的代码包装起来**
    
#define kALERT(str) [[[UIAlertView alloc]initWithTitle:@"抱歉" message:str delegate:nil cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil] show];

如何使用上面的代码?

kALERT(@"要显示的数据!");

或者更终极的…配置一大片代码

#define kCONFIG_MJREFRESH     [self.tableView addHeaderWithTarget:self action:@selector(pullDownRefresh)];self.tableView.headerPullToRefreshText = @"下拉刷新";self.tableView.headerReleaseToRefreshText = @"释放立即刷新";self.tableView.headerRefreshingText = @"正在刷新,请稍后...";[self.tableView addFooterWithTarget:self action:@selector(pullUpLoadMore)];self.tableView.footerPullToRefreshText = @"上拉加载更多数据";self.tableView.footerReleaseToRefreshText = @"释放立即加载";self.tableView.footerRefreshingText = @"正在加载,请稍后...";//配置下拉刷新
  • 4.当做函数使用的宏定义

    一个判断性别的简单”函数”

#define kSEXSTRING(sex) [sex intValue]?@"女":@"男"

使用方法

kSEXSTRING(@"1");

总结

使用宏定义的好处

- 1.把所有的常量收集在一起,便于维护
- 2.把常用的代码封装之后减少代码量
- 3.代码可读性更好,更专业

博主更多原文点击这里

时间: 2024-11-05 14:37:34

宏定义在app开发中的妙用的相关文章

IOS总结_#define宏定义在IOS开发中的具体使用

以下内容只是抛砖引玉,希望大家多提意见,多改错误,太简单的宏使用方法就不做解释了,来点扩展的 //没用#define前是这样的,每个ViewController都要写这么一段重复的代码 写多了就烦了 /***********************处理前*****************************/ UILabel *titleLabel = [[UILabel alloc] init]; titleLabel.backgroundColor  = [UIColor clearCo

app开发中整理需求的重要性

专业App开发公司经验之谈:app开发中需求整理是非常重要的一部分,而产品经理的角色就更为重要,要主导整个产品需求整理与整合.所以经验丰富的产品经理往往做这些事情时没有那么困难,但是如果是新手的话可能会犯以下的这些错误: 1.产品需求的真伪应如何鉴别? 往往开发一款产品会接到很多部门的需求,业务部门.老板.测试部门都可能会反馈到某某功能需求,而很多人的思维是怎么能完成这些需求,这里广州品向科技要提醒的是:如果有部门提出需求,那么还请站在产品的角度来看一下,这些需求是否都要满足! 2.表面需求已经

App开发中这些不能忽视的问题

随着现在移动互联网的发展,智能手机的普及,手机App应用在我们的生活中的作用越来越重要.很多企业也想进军互联网,App开发无疑是一个连接用户最好的桥梁.所以大家都会咨询广州App开发品向科技,下面小编为大家分享一些在App开发中不能忽视的问题. 1.一致,一致,还是一致 你能做的最重要的事情就是保证用户界面运作的一致性.对于列表框来说,如果双击其中的项,使得某些事件发生,那么双击任何其它列表框中的项,都应该有同样的事件发生.所有窗口按钮的位置要一致,标签和讯息的措辞要一致,颜色方案要一致.用户界

AI技术在短视频APP开发中的应用主要在于四个方面

你平均每天花在短视频APP上的时间是多久? 你目前使用最长时间的一款短视频APP是什么? 移动短视频APP开发可以在这四个方面应用AI技术 移动短视频APP开发可以在这四个方面应用AI技术 短视频APP已经成为了我们生活中消遣娱乐的一种普遍方式,移动短视频APP可以随时随地想看就看,比阅读文字更加简单便捷,而且还可以缓解工作,学习的压力,而且在不知不觉中刷一下短视频APP时间过的非常快,不仅如此还能利用移动短视频APP了解自内心新闻以及流行的话题等等,还能结交新的朋友,增加与朋友互动的频率. 移

社交类App开发中的IOS图像处理

社交类app是目前市面上比较火的app开发之一,如果想要开发一款类似于instagram或者微博的app,可能你虽然懂一些基础的UIKit.网络连接.服务器端等,但是对于社交类app来说,图片和图片滤镜是非常非常重要的一部分,如果想要从速成和知识体系两方面来准备开发社交类app的话,大概就需要下面几条建议: 速成类: 1. 其实目前网络上有非常多较为成熟完善的图片类库,正常来说可以通过短时间的学习迅速掌握并可以直接应用到你的开发.如果需要列举,大概就是下面这两种: l 苹果:Core Image

app开发中,苹果端可编辑标签,无法输入内容解决方案

在app开发,在使用div的contentedstable属性时,出现ios端编辑框无法选择聚焦的问题,查阅资料后发现是fastclick.js中的判断导致的. 1.解决方法, a.引入“.needsclick{content: attr(placeholder);}”,类名,“needsclick”命名尽量不要修改. b.在contentedsTable 属性标签中添加内敛样式“-webkit-user-select: auto;” 2.fastclick.js中的导致不能编辑的代码 事件的分

在Android App开发中实现任意Java方法的拦截

在Android的App开发过程中,经常会有一些导致App进程崩溃的Framework层Bug,比如这里讲的Cookie同步引起的崩溃等问题.这种情况下,我们如果能拦截到Framework层的Api调用,对它做个包装把异常捕捉住,就可以避免这个问题了. 当时,纯Java层是做不到的,而Java中的Proxy机制也只能针对自己定义的类,系统Framework层的类就不管用了.这里面说一种通过借鉴Java的JNI机制来实现进程类任意Java方法拦截. 任何一个Java方法在C++层都对应一个Meth

移动App开发中的View解耦问题

这几天在做给IOS代码降耦的事情,顺便唠叨几句开发中的View解耦问题. 首先,我们先定位一下View的角色:View应该只操心前/后景色,字体属性,布局特性,x/y/width/height等纯视觉属性.不应该操心数据加载.修改,事件响应等Model和Controller关心的事.当然,也包括自定义的View. 接下来讨论针对这个角色在实际开发中如何降低View部分耦合对整体架构的冲击. 1.View的初始化.属性设置应该有自己的Owner,不应该放到Controller中去.当然,这个工作可

Android App开发中的适配

Android手机的碎片化问题不用赘述,在此对适配什么及适配方法进行一次总结. 我们先来看被适配的对象. 第一类是操作系统适配,即适配Android 2.X,4.X,5.X--每个版本的操作系统,都有其特定的变化,对于App开发者而言,最重要的一点就是要明确每一个版本API Changed List.对变更列表中的新增API,可以选择性使用:对废弃API,可以及早应对:对变化的API,尤其是形式不变而含义变化的API,要重点研究,以免在不同版本中带来行为上的差异.比如权限分裂及默认值的变化,由串