文章目录
  1. 1. 一、获取手机系统版本
  2. 2. 二、设置MRC文件在ARC工程中使用
  3. 3. 三、怎样知道第三方SDK的版本号?
    1. 3.1. 一、确定友盟统计的UMMobClick.framework是什么版本
    2. 3.2. 二、确定shareSDK分享的ShareSDK.framework是什么版本
  4. 4. 四、保证代码只能在真机/非真机、debug/release条件下运行
  5. 5. 五、字符串转字典
  6. 6. 六、UIButton 显示不同的字体颜色

一、获取手机系统版本

1
2
3
4
5
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
CGFloat systemVersionFloat = [systemVersion floatValue];
if (systemVersionFloat < 8.0) {
NSLog(@"当前系统 小于 8.0");
}

注意:上面的[[[UIDevice currentDevice] systemVersion] floatValue]只是粗略判断,因为这样判断是有问题的。如图:

所以对获取到的版本号,用[[UIDevice currentDevice] systemVersion]获取的才是准确的。

正确的使用姿势如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
NSComparisonResult comparisonResult = [[[UIDevice currentDevice] systemVersion] compare:@"8.0" options:NSNumericSearch];
/**
typedef NS_ENUM(NSInteger, NSComparisonResult) {
NSOrderedAscending = -1L, //上升的,向上的 (小于)
NSOrderedSame, //相同 (等于)
NSOrderedDescending //递减 (大于)
};
*/
if (comparisonResult == NSOrderedAscending) {
NSLog(@"当前系统 小于 8.0");
}
//---------------------------------------
//或者
//当前系统是否 小于 系统v
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
// ios8以下
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
//... ...
}

来自:获取iOS系统版本,谨慎使用[[[UIDevice currentDevice] systemVersion] floatValue]


二、设置MRC文件在ARC工程中使用

  1. 选择项目中的Targets,选中你所要操作的Target,
  2. 选Build Phases,在其中Complie Sources中选择需要ARC的文件双击,
    并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc

来自:IOS ARC 和 非ARC 之间的转换方法


三、怎样知道第三方SDK的版本号?

一、确定友盟统计的UMMobClick.framework是什么版本

有时我们要确定友盟统计的SDK是什么版本的,方便我们管理第三方组件。检查UMMobClick.framework,没发现plist之类可以查看版本信息的文件:

只能去友盟联系客服了。经过一番询问,知道了获取版本信息的方法:

debug

  1. 安卓打印debug方式:打开debug测试模式的方法是在程序入口的on create()方法中添加此句代码:MobclickAgent.setDebugMode( true );(注:此句代码要加在所有友盟代码的前面)此时就可以在工程中查看logcat日志了

  2. ios的:打开debug测试模式的方法是在程序入口友盟代码前添加此句代码:[MobClick setLogEnabled:YES];(注:此句代码要加在所有友盟代码的前面)



在项目中的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//TKAppDelegate.m
//... ...
#if TARGET_IPHONE_SIMULATOR
//友盟统计--调试看是哪个版本的
#import "UMMobClick/MobClick.h"
#endif
//... ...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[super application:application didFinishLaunchingWithOptions:launchOptions];
[application setStatusBarHidden:NO];
#if TARGET_IPHONE_SIMULATOR
[MobClick setLogEnabled:YES];
//UMLOG:
#endif
//... ...
}

运行模拟器,打印出的结果是:

二、确定shareSDK分享的ShareSDK.framework是什么版本

只需要在真实目录下查看ShareSDK.framework里面的plist文件即可:



四、保证代码只能在真机/非真机、debug/release条件下运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#if TARGET_IPHONE_SIMULATOR
//模拟器条件下执行
#endif
#if !TARGET_IPHONE_SIMULATOR
//真机条件下执行
#endif
//--------------------------------------
#ifdef DEBUG
//DEBUG条件下执行
#else
//release条件下执行
#endif

五、字符串转字典

1
2
3
4
5
6
7
8
9
//testString
NSString *msgText = @"{\"isshowdialog\":\"0\",\"title\":\"精选资讯\",\"description\":\"【精选资讯】测试消息中心资讯来源201705042045\",\"action_type\":\"1\",\"action_description\":\"不跳转(这里使用来描述消息点击后的功能其实没啥用)\",\"activity\":\"com.thinkive.infor.ui.activitys.WebNewDetailActivityInformation\",\"extra\":{\"id\":\"488\",\"title\":\"测试消息中心资讯来源201705042045\",\"media\":\"华安资讯\",\"updateTime\":\"2017-05-04 20:39:24\",\"huaAn\":\"200030\",\"information\":\"精选\"}}";
if (msgText.length > 0) {
NSDictionary *messageTextDict = [NSJSONSerialization JSONObjectWithData:[msgText dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:nil];
if (messageTextDict.count >= 1) {
NSString *msgDescription = messageTextDict[@"description"];
NSLog(@"msgDescription: %@", msgDescription);
}
}

来自:IOS 如何把一个字典格式的字符串转换成字典


六、UIButton 显示不同的字体颜色

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
UIButton *button = ({
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.titleLabel.font = [UIFont systemFontOfSize:16];
button.layer.cornerRadius = 3;
button.clipsToBounds = YES;
button.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
button.tag = 104;
button.titleLabel.textAlignment = NSTextAlignmentCenter;
button.clipsToBounds = YES;
[self.view addSubview:button];
button;
});
button.frame = CGRectMake(0, 80, CGRectGetMaxX(self.view.frame) - 80, 60);
button.center = self.view.center;
//设置标题不同颜色
NSString *title = [NSString stringWithFormat:@"50s后重发"];
NSRange sRange = [title rangeOfString:@"s"];
NSMutableAttributedString *titleAttriString = [[NSMutableAttributedString alloc] initWithString:title];
[titleAttriString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, sRange.location + 1)];
[titleAttriString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:14] range:NSMakeRange(0, sRange.location + 1)];
[titleAttriString addAttribute:NSForegroundColorAttributeName value:[UIColor darkGrayColor] range:NSMakeRange(sRange.location + 1, title.length - sRange.location - 1)];
[button setAttributedTitle:titleAttriString forState:UIControlStateNormal];

效果图如下:

来自:iOS UIButton 显示不同的字体颜色


文章目录
  1. 1. 一、获取手机系统版本
  2. 2. 二、设置MRC文件在ARC工程中使用
  3. 3. 三、怎样知道第三方SDK的版本号?
    1. 3.1. 一、确定友盟统计的UMMobClick.framework是什么版本
    2. 3.2. 二、确定shareSDK分享的ShareSDK.framework是什么版本
  4. 4. 四、保证代码只能在真机/非真机、debug/release条件下运行
  5. 5. 五、字符串转字典
  6. 6. 六、UIButton 显示不同的字体颜色