蘋果開發 筆記(23)

2021-07-02 14:47:33 字數 1383 閱讀 8797

nsobject的oc裡面基礎類,在最近的學習當中,越來越發現在oc扮演一種責任很大。 涉及到當中runtime 理解,眾多概念又是oc學習的乙個難點。

當中的概念有:sel,class,imp。

sel (方法id,指向乙個objc_selector的指標,表示方法的名字)

imp (函式指標,方法位址)

在這個過程,既要理解sel設計的意圖,又要去理解oc的訊息機制。一下子真的搞昏頭腦。在這個過程 我發現例如眾多的結構體,可以慢慢形成乙個網路。

以objc_*** 這樣方式開頭的結構體。

typedef

struct objc_class *class;

typedef

struct objc_object *id;

typedef

struct objc_method *method;

struct objc_method_list **methodlists;

struct objc_cache *cache;

struct objc_protocol_list * protocols;

typedef

struct objc_selector *sel;

看看 這些既熟悉 又常用的結構體,不知不覺也用到一部分。

今天在使用imp的時候,呼叫的過程卻出現乙個引數過多問題。直接用imp 呼叫出現一些問題,引數過多的情況。

不清楚為什麼?

imp 有一種分支判斷的情況。xcode 呼叫直接出錯。

下午重溫一下uiview 相關繪圖方面的知識,整體來講api除了有點長外,沒有太多難以理解的概念。

#import "myview.h"

#import

@implementation

myview

-(void) drawrect:(cgrect)rect

-(void) drawasrect

-(void) drawcircle

-(void) drawellipse

-(void) drawline

@end

繪橢圓和圓形都是使用同乙個方法 cgcontextaddellipseinrect ,繪製圓形則rect設定兩個相同值即可。

蘋果開發 筆記(9)

今天書寫的內容不多一直在徘徊緊。早上接觸了git,申請了乙個賬號。以後的 都可以那邊託管一下。將昨天寫到的 模板也看了一下,原來自定義的 模板放置在這裡使用mac 前往資料夾功能即可跳轉到對於的資料夾 library developer xcode userdata codesnippetsxcod...

蘋果開發 筆記(17)

第一次在建立專案 勾選 coredata 的選項會生成一些coredata 的相關的api 類。這些類會記錄在 那裡。從 那裡找到獲取到 nsmanagedobjectcontext 的上下文。想起這個上下文,包括繪圖也有類似。先獲取到對應的類,下面就可以做出相應的事情。例如乙個是建立的動作,乙個獲...

蘋果開發 筆記(22)

今天繼續練習,重新去理解一下動態識別的應用。平時我們經常判斷乙個物件是不是所屬的類或者子類 可以通過is 的方法去完成。這個是swift提供的乙個方法。oc則提供豐富的方式來判斷,大部分功能整合在nsobject可見。可以說nsobject 責任非常重。方法名作用 ismemberofclass 檢...