Object Foundation框架 第一課

2021-06-25 10:26:04 字數 2094 閱讀 7590

4個結構體  nsrange,nspoint,nssize,nsrect

簡單解釋:nsrange 字面上就可以看出是範圍,比如字串中的某個字元的起始位置,長度就用到它

nspoint    就是點,也就是座標,注意是二維座標,不是三維

nssize     尺寸大小,包括長度和寬度

nsrect   就是區域,point和size構成乙個區域,所以rect就是包含 nspoint和nssize

foundation 框架

定義了一些基礎類,可以用於各種典型的cocoa程式

層次的根是nsobject類,定義了基本的物件屬性和行為

的剩餘部分由幾組

實現圖形、事件驅動使用者介面所需的物件:視窗,對話方塊,按鍵,選單,滾動條,文字輸入框等;

由超過125個類和協議組成。所有的類最終都從foundation框架的nsobject 類繼承而來。

2.nsrange

typedef struct _nsrange nsrange;

struct _nsrange  = nsrange

含義:乙個結構體,表示相關事物的範圍。

location 欄位為該範圍的起始位置;

length欄位為該範圍內所含元素個數。

建立方式:

直接給字段賦值

應用c語言的聚合結構賦值機制

使用cocoa提供的快捷函式nsmakerange()

例子:對字串取子串

[cpp]view plain

copy

#import 

intmain (

intargc, 

const

char

* argv)  

;nslog(@"beer shortname:%@"

,[homebrew substringwithrange:range]);  

return

0;  

}  

結果是 ipa;

3.nspoint

初始化 nspoint 使用函式nsmakepoint

nspoint p = nsmakepoint(10,45);

從乙個結構體變數獲取座標

float x = p.x;

float y = p.y;

4.nssize

初始化nssize

nssize s = nsmakesize(10,45)

從乙個結構體變數獲取width,heigth

float width = s.width;

float height = s.heigth;

5.nsrect

乙個結構體,由點,大小組成而成;儲存乙個矩形的起始點和長度,寬度。

[cpp]view plain

copy

#import 

intmain (

intargc, 

const

char

* argv)  

;  //對結構體最底層的成員賦值

nsrect r3;  

r3.origin.x = 0.0;  

r3.origin.y = 0.0;  

r3.size.width = 100.0;  

r3.size.height = 120.0;  

return

0;  

}   /q:

常見的資料都是c的struct而不是oc物件?

因為效能,oc物件是通過動態分配,而動態分配是乙個代價較高的操作,會消耗大量的時間。

/6.可變物件和不可變物件

建立乙個oc物件後,該物件的內容不可更改,則稱該物件為不可變物件。

僅可進行讀操作,不能進行寫操作;

該物件內容可以更改,則稱為可變物件

即可進行讀操作,也可進行寫操作,還可改變大小。

7.nsstring

nsstring是不可變的,即一旦建立則不可改變,可對它執行各種讀操作,但不能刪除,新增字元,也不可改變內容。

nsstring是乙個物件型別,是nsobject的子類,具有nsobject的所有特性。

Object Foundation框架 第二課

nsstring 這是乙個最常用 oc類 1,既然是oc類,一般情況下是不需要主動釋放記憶體,因為oc類本身已經實現釋放功能 2,如果是 initwith 來建立乙個nsstring 物件,需主動釋放記憶體 3,一般情況下每個initwith 方法都有乙個對應的stringwith 靜態方法,如果是...

誰是第一學習深度學習框架

我的部落格即將入駐 雲棲社群 誠邀技術同仁一同入駐。第乙個深度學習框架該怎麼選 對於初學者而言一直是個頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們在高階框架上的答案。在 keras 與 pytorch 的對比中,作者還給出了相同神經網路在不同框架中效能的基準測試結果。目前在...

YII框架學習 第一天

yii這個框架聽比爾說很不錯,寫的很優雅,於是乎,就好奇進入官網進行學習下,大yii框架。首先把自己的php環境配置到最低5.4,因為yii裡面用的全是簡化的陣列形式,這種簡化陣列形式,只有到5.4才支援 我用的5.3於是又重新配置了一套,使用php5.6,apaphe2.4.沒有的可以使用我整理好...