学习Coding-iOS开源项目日志(一)

前言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目。本篇开始会陆续更新本人对github上开源的一个很不错的项目的一点点学习积累。也就是,探究着别人写的源码,我学到了新的什么东西?本人愚拙,而且码龄不多,也就三年左右,水平不高,如有挫解,还望指正。本人乐爱学习,乐于分享,广结良缘,愿意交流。当然,高手可以飘过。

Coding-iOS项目网址:https://github.com/Coding/Coding-iOS 读者感兴趣的可以自己去下载,当然项目很多第三方框架是没有直接集成进来的,读者自行通过该项目的提示处理。

 

内容概要:

1、关于MobClick,友盟统计的使用

2、关于Google Analytics

3、关于Debug

4、关于RDVTabBarController

5、关于GCC语法

 

正文:

2016年3月21日

文件:BaseViewController.m

1、下面代码添加友盟统计,设置状态栏,代码设置竖屏。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    // hy:友盟统计,https://github.com/liyoro/UMAnalytics
    // hy:标哥的博客:http://www.henishuo.com/ios-umeng-push/
    [MobClick beginLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]];
    // hy:设置状态栏
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

    // hy:如果不是竖屏、不支持竖屏或是横屏
    if (self.interfaceOrientation != UIInterfaceOrientationPortrait
        && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) {
        // hy:设置成竖屏
        [self forceChangeToOrientation:UIInterfaceOrientationPortrait];
    }
}
......
- (void)forceChangeToOrientation:(UIInterfaceOrientation)interfaceOrientation{
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:interfaceOrientation] forKey:@"orientation"];
}

文件: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

- (void)viewDidLoad{
    [super viewDidLoad];
    self.view.backgroundColor = kColorTableBG;
    // hy:这里又代码设置竖屏
    if (self.interfaceOrientation != UIInterfaceOrientationPortrait
        && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) {
        [self forceChangeToOrientation:UIInterfaceOrientationPortrait];
    }
    // hy:添加了google analytics,Google提供的免费的使用者分析服务
    // GA
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    [tracker set:kGAIScreenName value:[NSString stringWithUTF8String:object_getClassName(self)]];
    [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
}

 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使用了一下:

 4、文件夹:RDVTabBarController

因为在项目源码中,RootTabViewController : RDVTabBarController<RDVTabBarControllerDelegate>,所以进一步探索RDVTabBarController,发现这个是第三方框架

而且github上点赞量蛮高的,网址是:https://github.com/robbdimitrov/RDVTabBarController 。记录以后学习学习该源码做了什么?

3月24日:

 5、在CodingBannersView.m文件中可以发现一枚"GCC语法":

时间: 2024-08-17 15:50:55

学习Coding-iOS开源项目日志(一)的相关文章

iOS开发:GitHub上的40个iOS开源项目

 开发:GitHub上的40个iOS开源项目-"> 1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConnection.NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它. 支持HTTP请求和基于REST的网络服务(

Github上600多个iOS开源项目分类及介绍

iOS 开源项目 . 开源框架.开源模块列举 http://github.ibireme.com/github/list/ios/

嵌入式 十个最值得阅读学习的C开源项目代码

开源世界有许多优秀的开源项目,我选取其中十个最优秀的.最轻量级的C语言的项目,希望可以为C语言开发人员提供参考. 十个最值得阅读学习的C开源项目代码 1. Webbench 2. Tinyhttpd 3. cJSON 4. CMockery 5. Libev 6. Memcached 7. Lua 8. SQLite 9. UNIX v6 10. NETBSD 十个最值得阅读学习的C开源项目代码 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fo

Github上600多个iOS开源项目

将Github上600多个iOS开源项目进行分类并且有相应介绍,小伙伴们快来看呀 地址:http://github.ibireme.com/github/list/ios/ 转载:http://blog.csdn.net/fyq891014/article/details/12625081 参考: http://blog.csdn.net/james_1010/article/details/8538524

史上最全的iOS开源项目分类汇总

楼主转载的,并未亲自测试 Category/Util  sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错-        BFKit 又一套Category类型的 Kit,还有几个工具类        APUtils 又一套Category类型的 Kit        QSKit 又一套Category类型的 Kit        iOS-Categories 又一套Category类型的 Kit        BlocksKit 将Block风格带入UIKit和F

15款适应初学者学习的小型开源项目

SeaJS Sea.js是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.Sea.js 追求简单.自然的代码书写和组织方式,代码非常精简. Koa Koa 是下一代的 Node.js 的 Web 框架.由 Express 团队设计.旨在提供一个更小型.更富有表现力.更可靠的 Web 应用和 API 的开发基础. pssh pssh 提供了并行版本的 OpenSSH 工具,特别适合用来控制有大量机器需要连接的情况,包括并行版本的

让IOS开源项目支持cocopods

内容已更新且已移至:http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=214027899&idx=1&sn=f1de7177dd77e4ca4c00129d4b7f64c8#rd 欢迎关注微信公众号:iOSDevShares.

java开源项目研究 3.许可协议介绍

项目     如果你只是想学习使用一下开源项目,那么你可以跳过本节(了解一下更好^_^),但是如果你想在自己的产品(不管是开源的还是商业的)中集成开源项目,那么你必须了解许可协议.        开源项目的License可以分为三大类:     OSI-Approved Open Source:被开放源码组织(www.opensource.org)所批准的开放源码授权协议.像大家经常看到的Apache,GPL,LGPL,MIT Licence,都属于OSI-Approved的授权协议,OSI 的

【Android】GitHub Android 开源项目汇总

参考网址:http://blog.csdn.net/ithomer/article/details/8882236 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果. 1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个