學習Coding iOS開源專案日誌(一)

2021-09-08 11:41:05 字數 3485 閱讀 8431

前言:作為初級程式設計師,想要提高自己的水平,其中乙個有效的學習方法就是學習別人好的專案。本篇開始會陸續更新本人對github上開源的乙個很不錯的專案的一點點學習積累。也就是,**著別人寫的原始碼,我學到了新的什麼東西?本人愚拙,而且碼齡不多,也就三年左右,水平不高,如有挫解,還望指正。本人樂愛學習,樂於分享,廣結良緣,願意交流。當然,高手可以飄過。

另外還有官網介紹:

內容概要:

1、關於mobclick,友盟統計的使用

2、關於google analytics

3、關於debug

4、關於rdvtabbarcontroller

5、關於gcc語法

6、關於tmcache的使用

7、關於tttattributedlabel的使用

正文:

2023年3月21日

檔案:baseviewcontroller.m

1、下面**新增友盟統計,設定狀態列,**設定豎屏。

1 - (void216

}17......

18 - (void

)forcechangetoorientation:(uiinte***ceorientation)inte***ceorientation

檔案:mobclick.h 是友盟統計的sdk介面檔案。具體使用以後補充,先知道這個類是這麼回事。

2、下面**中用了google analytics。

關於整合這個google analytics的sdk學習的**: (外國**)

對應的國內翻譯**:

1 - (void

)viewdidload9//

hy:新增了google analytics,google提供的免費的使用者分析服務

10//

ga11

idtracker =[[gai sharedinstance] defaulttracker];

12 [tracker set

:kgaiscreenname value:[nsstring stringwithutf8string:object_getclassname(self)]];

13[tracker send:[[gaidictionarybuilder createscreenview] build]];

14 }

3、下面**用了巨集定義debug列印模式

- (void

)tabbaritemclicked

然後我command+click跳轉到下面**:

1

#define debuglog(s, ...) nslog(@"%s(%d): %@", __function__, __line__, [nsstring stringwithformat:(s), ##__va_args__])

然後我就自己建立新的****** project使用了一下:

4、資料夾:rdvtabbarcontroller

因為在專案原始碼中,roottabviewcontroller : rdvtabbarcontroller,所以進一步探索rdvtabbarcontroller,發現這個是第三方框架

而且github上點讚量蠻高的,**是: 。記錄以後學習學習該原始碼做了什麼?

3月24日:

5、在codingbannersview.m檔案中可以發現一枚"gcc語法":

6、關於tmcache的使用:

在coding-ios這個專案中,通過pod整合了tmcache這個框架,於是我就對這個框架進行了了解:

tmcache 是 tumblr 公司開發的乙個快速,無死鎖的並行物件快取,支援 ios 和 os x 系統。

示例**:

uiimage *img = [[uiimage alloc] initwithdata:data scale:[[uiscreen mainscreen] scale]];

[[pincache sharedcache] setobject:img forkey:@"image" block:nil]; // returns immediately

[[pincache sharedcache] objectforkey:@"image"

block:^(pincache *cache, nsstring *key, id object) ];

不過現在已經停止更新了。

然後再來看coding-ios這個專案中的乙個tmcacheextend.h和tmcacheextend.m檔案。

1

#import

2#import

"tmcache.h"3

4@inte***ce

tmcache (extension)

56 +(instancetype)temporarycache;

7 +(instancetype)permanentcache;89

@end

1

#import

"tmcacheextend.h"2

3#define ktemporarycache @"com.dv.cache.temporary"

4#define kpermanentcache @"com.dv.cache.permanentcache"56

@implementation

tmcache (extension)

78 +(instancetype)temporarycache

11 +(instancetype)permanentcache

1415

@end

看的出這個拓展(但不是類別,僅僅是普通類,使用了便利構造器的用法),便利出了兩個方法:temporary(臨時的)、permanent cache(永久的快取)

然後在cssearchmodel.m檔案中,只用了臨時快取的方法temporarycache。

7、關於tttattributedlabel的使用

這個是點讚超過5k的第三方框架,github**是: ,簡略的中文部落格介紹可以看看: ,然後來看看coding原始碼中uitttattributedlabel.h是對tttattributedlabel的乙個繼承拓展,然後多出被使用,其中cssearchcell.h中就被使用,匯入和遵循了協議,在cssearchcell.m檔案中第32行宣告了屬性,然後建立了這個uitttattributedlabel物件:

學習Coding iOS開源專案日誌(五)

繼續,接著前面第四篇 學習coding ios開源專案日誌 四 講解coding ios開源專案。前 言 作為初級程式設計師,想要提高自己的水平,其中乙個有效的學習方法就是學習別人好的專案。本篇開始會陸續更新本人對github上開源的乙個很不 錯的專案的一點點學習積累。也就是,著別人寫的原始碼,我學...

學習Coding iOS開源專案日誌(四)

前 言 作為初級程式設計師,想要提高自己的水平,其中乙個有效的學習方法就是學習別人好的專案。本篇開始會陸續更新本人對github上開源的乙個很不 錯的專案的一點點學習積累。也就是,著別人寫的原始碼,我學到了新的什麼東西?本人愚拙,而且碼齡不多,也就三年左右,水平不高,如有挫解,還望指正。本人樂愛學習...

python scrapy開源專案學習

這個專案的架構不是怎麼複雜,但作為python的初學者,看到這個專案的這麼多 徹底暈了。俗話說,萬事開頭難,確實,開始不知如何下手,如何定製符合自己需求的蜘蛛。只知道建立乙個工程,但工程的各個模組的作用是什麼,如何把這些模組組成乙個整體,讓它真正的發揮作用。好吧,此時最笨的方法是去瞧瞧源 追蹤程式的...