iOS开发编码规范与审核时的注意事项

iOS开发编码规范与审核时的注意事项

一. 编码的排版格式

1 代码的缩进应使用空格(SPACE),不能使用制表符(TAB),并且缩进以2个字符为单位。

2 空格的使用

 a) 关键字与其后的表达式之间要有空格,如:if (expr)或for (expr)

 b) 单目操作符不应与它们的操作数分开(如’!’和’^’等)。

 c) 除‘,’外,其它双目操作符应与它们的操作数用空格隔开。如:

 i=i+1;              //错误的写法,操作符两端没有空格        

 i =i + 1;            //正确的写法,         

 if(a>b)             //错误的写法,逻辑判断符号两端没有空格        

 if(a> b)            //正确的写法

 d).h中协议<>前面有一个空格。

 e) .h中成员声明时,类型与变量之间有至少1个空格。*号靠近变量,不靠近类  型。

 f) @property后留1个空格,()里面,逗号紧跟前一变量,与后一变量之间留1个空格。()外面,先留1个空格,再声明属性。

 g) 方法的+,-后面与()之间留1个空格。

 h) 返回类型与*之间留1个空格,方法参数中返回类型与*之间留1个空格。

 i) 在多参数方法中,每个参数后面都有1个空格。

3 关于空行

 a).h中的空行

  1)、文件说明与头文件包含(#import)之间空1行

  2)、头文件包含(#import)之间,如果需要分类区别,各类别之间空1行。

  3)、头文件包含(#import)与@class之间空2行。

  4)、@interface与@class之间空1行。

  5)、头文件{}里面,空1行开始声明对象成员,如果需要分类区别,各类别之间空1行。

  6)、头文件{}外,空1行书写属性,如果需要分类区别,各类别之间空1行。

  7)、属性下面空1行开始写方法,如果需要分类区别,各类别之间空1行。

  8)、方法完成后,空1行@end。

  9)、如果需要声明protocol,空2行接着写。通常protocol写在@end后面,但是声明在@interface之前。

 b).m中的空行

  1)、文件说明与头文件包含(#import)之间空1行

  2)、头文件包含(#import)之间,如果需要分类区别,各类别之间空1行。

  3)、@implementation和@synthesize之间空1行, 如果需要分类区别,各类别之间空1行。

  4)、@synthesize与方法之间空1行。

  5)、方法与方法之间空1行。

 c) 方法里面的空行

  1)、变量声明后需要空1行,如果需要分类区别,各类别之间空1行。

  2)、条件、循环和选择语句,整个语句结束,需要空1行。

  3)、各功能快之间空1行。

  4)、最后一个括弧之前不空行。

  5)、注释与代码之间不空行。

  6)、#pragma mark与方法之间空1行。

 d) 每行代码最多不得操作100个字。设置如下:

 Xcode=> Preferences => TextEditing => Page Guide at column /输入 100即可。

二.命名规范

1 类

 1) 所有的类名,接口名(Protocol)均以大写字母开头,多单词组合时,后面的单词首字母大写。类,接口名必须是有意义的。

 2) 继承自UIView的类以View结尾。

 例如:OperatorUsersInfomationView,LabelView等。

 3) 继承自ViewController的类以viewController结尾。

 例如:HomePageViewController,LoginViewController等。其他类推。

 4) 所有保存数据的实体以Model结尾。例如:UserModel

2 方法

1)  方法名首字母小写,多单词组合时,后面的单词首字母大写。方法的参数使用相同的规则。

2)  方法名+参数应尽量读起来像一句话。

3)  getter的方法名和变量名应相同。不允许使用“get”前缀。如:

- (id) getDelegate; // 错误

- (id)delegate; // 正确

3 变量

 1) 变量必须起有意义的名字,使其他组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,第一个单词首字母小写,其他单词首字母大写。

例如:NSString  *userName;

 2) 对于一些特殊类型的变量,命名时要带上类型,如NSArray 的变量命名为xxxArray,其他的如xxxDictionary,xxxSize等。这样就可以从名称上知道是什么类型的变量。千万不能将NSArray的变量命名为xxxDictionary。

 3) 成员变量使用“_”作为前缀。

4 常量

1)  避免在程序中直接出现常数,使用超过一次的应以宏定义的形式来替代。

2)  常量的命名应当能够表达出它的用途,并且用大写字母表示。

 

三.iOS应用审核注意事项

基本要点

首先,你的应用程序:

●  不能导致手机故障(比如崩溃或屏幕问题)

●  长时间或过使用之后反应仍然很快

●  不要使用任何SDK里面的私人API

●  不要使用任何SDK文档里面没有列出的功能

●  不要提及用户设备上不存在的硬件功能

●  如果需要网络连接,在没有网络的情况下要告知用户

●  不要(过渡)模仿任何本地应用程序

●  不要(过渡)山寨某个本地应用的功能

●  运行若干次之后不要过期或停止工作

●  不要使用任何未经批准的硬件配件

●  不要“无意中”发生这样的事情:不受限制的网页浏览、显示歌词、未经过滤的图书

●  不要恶搞知名的公众人物,不管是死是活

●  不要包含能够执行下载文件的脚本解释器、插件或其它运行时(runtime)

●  不要使用连续震动

●  在每个输入区域使用相关的键盘(比如在输入手机号的地方要调出数字键盘)

●  在表格视图下,如果选中多行会调出另一个视图的话,那么应该取消选中当前视图中的行

●  仅在连接WiFi的情况下才能播放视频或下载其它大型文件

●  如需发送私人数据到服务器,需要告知用户,并提供取消选项

●  不要偷偷使用摄像头或话筒

●  使用GPS功能是为了给用户带来切实的好处,而不是仅仅是广告或跟踪

●  绝不要崩溃

 

遵守苹果的用户界面指南(HumanInterface Guidelines

●  应用看上去设计精美、品质上乘

●  本地按钮图标与其本地动作保持一致

●  活动指示图标不能转个没完没了

●  触碰之后可以激活按钮

●  屏幕布局可以处理好高度加倍的状态栏(比如通话期间)

●  停止应用时应保存状态,下次启动时可以恢复

●  如果支持横屏模式,横屏设计也要很美

 

iPad特别注意事项:

●  你的应用应该从各个方向都能使用,如果仅支持横屏和竖屏,那么上下两个方向都要支持

●  弹出窗口里面不应该包含其它弹出窗口,也就是选择弹出窗口里面的东西不会激活另一个弹出窗口Y

●  一次不能弹出两个及以上窗口

 

提交应用程序文件时的细节:

●  程序文件名字和iTunes应用商店里面显示的名字要一致,或者是缩写

●  iTunes中的描述要准确描述应用的功能,说到做到

●  iTunes描述不包括价格信息

●  iTunes描述中不能包括Android、黑莓等苹果竞争对手的名字

●  iTunes描述不能提及尚未发布的iOS版本

●  iTunes关键词要和应用功能相匹配

●  iTunes关键词不能包含其他应用的名称

●  如果你的应用售价超过100美元或者应用内购买金额超过100美元,那么应该标记为17+

●  应用截屏不能包含错误状态,包括iAd的错误

●  应用分类与其功能相符

●  应用中的彩蛋无伤大雅,需要在演示账户中透露

●  提供各种尺寸的图标:57,72 (iPad),114,512

●  不同尺寸的图标都包含同样的内容

●  版本号大于等于1.0

●  info.plist文件中所需要的设备功能和应用的实际需求相符

●  应用使用情况和操作系统版本兼容性相符

●  NSZombieEnabled设为NO

●  如使用推送通知,需要在entitlements.plist中添加用于“aps-environment”授权信息

●  若使用推送通知,你的应用ID必须已经激活推送通知功能

●  在更新iTunes的“新功能”介绍时,内容要和应用实际变化相符

●  更新应用时,要做到名副其实,并且更新能够被用户发现

●  更新后的应用版本号要大于上个版本

 

杂项:

●  应用要有足够大的市场,比如不能直供小部分人私下里使用

●  应用里不能存在已经作废的和未来版本发布有关的按钮和功能

●  简化(Lite)版应用必须能用;也就是说也要做到名副其实

●  简化(Lite)版应用不能有时间限制

●  简化(Lite)版应用不得显示完整版应用的价格

●  作为应用的一部分,应用加载的网页必须是线上的,并且可用

●  任何相关的email地址都必须存在并且可用

●  所有应用升级和其他交易都必须通过苹果应用商店完成

●  应用不能是一个简单的浏览器窗口中的的网站

●  应用必须满足任何相关的管制规定,比如涉及医疗的应用

●  若使用加密,必须已经通过BIS注册,并能提供文档

●  如果你的应用需要登录,需要提供测试账户

●  如果应用使用MapKit,不得隐藏或掩饰GoogleLogo

●  如果使用摄像头,不得关闭快门声音

 

版权、商标、所有权

●  能证明你拥有或有权使用应用中的所有代码

●  能证明你拥有或有权使用应用中的所有作品

●  能证明你有权使用应用中的所有品牌名、公众人物名和其他商标材料

●  比如图片和图标不能有偏光效果的边界

●  比如图片和图标不能包含iPhone和其他苹果产品

●  你能证明拥有或有权使用应用中的所有视频、音乐和歌词

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值