学习Coding-iOS开源项目日志
Posted HeYang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Coding-iOS开源项目日志相关的知识,希望对你有一定的参考价值。
前言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目。本篇开始会陆续更新本人对github上开源的一个很不错的项目的一点点学习积累。也就是,探究着别人写的源码,我学到了新的什么东西?本人愚拙,而且码龄不多,也就三年左右,水平不高,如有挫解,还望指正。本人乐爱学习,乐于分享,广结良缘,愿意交流。当然,高手可以飘过。
Coding-ios项目网址:https://github.com/Coding/Coding-iOS 读者感兴趣的可以自己去下载,当然项目很多第三方框架是没有直接集成进来的,读者自行通过该项目的提示处理。
内容概要:
正文:
2016年3月21日
文件:BaseViewController.m
1、下面代码添加友盟统计,设置状态栏,代码设置竖屏。
1 - (void)viewWillAppear:(BOOL)animated 2 { 3 [super viewWillAppear:animated]; 4 // hy:友盟统计,https://github.com/liyoro/UMAnalytics 5 // hy:标哥的博客:http://www.henishuo.com/ios-umeng-push/ 6 [MobClick beginLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]]; 7 // hy:设置状态栏 8 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES]; 9 10 // hy:如果不是竖屏、不支持竖屏或是横屏 11 if (self.interfaceOrientation != UIInterfaceOrientationPortrait 12 && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) { 13 // hy:设置成竖屏 14 [self forceChangeToOrientation:UIInterfaceOrientationPortrait]; 15 } 16 } 17 ...... 18 - (void)forceChangeToOrientation:(UIInterfaceOrientation)interfaceOrientation{ 19 [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:interfaceOrientation] forKey:@"orientation"]; 20 }
文件:MobClick.h 是友盟统计的SDK接口文件。具体使用以后补充,先知道这个类是这么回事。
2、下面代码中用了Google Analytics。
关于集成这个Google Analytics的SDK学习的网站:https://www.raywenderlich.com/53459/google-analytics-ios (外国网站)
对应的国内翻译网站:https://www.raywenderlich.com/53459/google-analytics-ios
1 - (void)viewDidLoad{ 2 [super viewDidLoad]; 3 self.view.backgroundColor = kColorTableBG; 4 // hy:这里又代码设置竖屏 5 if (self.interfaceOrientation != UIInterfaceOrientationPortrait 6 && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) { 7 [self forceChangeToOrientation:UIInterfaceOrientationPortrait]; 8 } 9 // hy:添加了google analytics,Google提供的免费的使用者分析服务 10 // GA 11 id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 12 [tracker set:kGAIScreenName value:[NSString stringWithUTF8String:object_getClassName(self)]]; 13 [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; 14 }
3、下面代码用了宏定义Debug打印模式
- (void)tabBarItemClicked{ DebugLog(@"\ntabBarItemClicked : %@", NSStringFromClass([self class])); }
然后我command+click跳转到下面代码:
1 #define DebugLog(s, ...) NSLog(@"%s(%d): %@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
然后我就自己创建新的Simple Project使用了一下:
2、文件夹:RDVTabBarController
因为在项目源码中,RootTabViewController : RDVTabBarController<RDVTabBarControllerDelegate>,所以进一步探索RDVTabBarController,发现这个是第三方框架
而且github上点赞量蛮高的,网址是:https://github.com/robbdimitrov/RDVTabBarController 。记录以后学习学习该源码做了什么?
3、
以上是关于学习Coding-iOS开源项目日志的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段