版本号并不是一个数字,而是一个字符串
所谓 暗开关 是指我通过服务端写接口来控制通过appstore审核的,例如用来屏蔽微博分享或者一些苹果审核禁止的功能.
1.版本号
版本号的获取,很简单
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]
版本号会有两个小数点, 形如1.1.1, 故不能用浮点数来判断版本号大小.
在iOS中用compare:方法判断字符串.
NSString *currentSystemVersion = kSystemVersion;
if ([currentSystemVersion compare:@"5.1"] != NSOrderedAscending)
{
//当前iOS版本大于5.1
}
else if ([currentSystemVersion compare:@"5.0.1"] != NSOrderedAscending)
{
//当前iOS版本大于5.0.1
}
NSOrdered 说白了,实际上就是>=<, -1,0,1,返回值是一个比较的结果.
NSOrderedAsceding是其中一个枚举, 详细参见文档.
这种比较方法很方便,不仅可以进行5.1与6.1的比较,还可以细化到5.1和5.0.1版本的比较。之所以需要细化,是因为每一个小版本之间,sdk还有有一些差异的,就比如避免文件被备份到iCloud,实现方式在5.1和5.0.1不同。
php中的方法
<?php
if (version_compare("5.2", PHP_VERSION, ">"))
{
//("PHP 5.2 or greater is required!!!");
}
?>
2.暗开关
由于开关是服务器控制, 所以我们不能在开关关闭时关闭所有已经上线的版本. 只能对最新的版本进行操作.
因此参数要传递当前版本号, 判断是否为最新版本, 若为最新版本返回已经设置好的开关, 如果是旧版本则永远为true,不干涉老版本.