nsarray和nsdictionary都只能儲存物件,不能儲存任何基本型別的資料,如int,float,struct。因此我們可以用物件來封裝基本的數值。
cocoa提供了nsnumber來儲存物件,但不能儲存c裡面的各種資料,所以我們要用一些相應的物件來進行封裝。
nsnumber類來包裝基本資料物件。可以有下列方法:
+ (nsnumber *) numberwithchar: (char) value;
+ (nsnumber *) numberwithint: (int) value;
+ (nsnumber *) numberwithfloat: (float) value;
+ (nsnumber *) numberwithbool: (bool) value;
只要將乙個基本型別資料封閉到nsnumber中後,就可以通過下面的例項方法重新獲得它:
- (char) charvalue:
- (int) intvalue;
-(float)floatvalue;
- (bool)boolvalue;
- (nsstring *) stringvalue;
nsnumber實際上是nsvalue的子類,nsvalue可以包裝任意值,你可以用nsvalue將結構放入nsarray和nsdictionary中,通過下列方法建立新的nsvalue:
+ (nsvalue *) valuewithbytes:(const void *) values
objctype:(constchar*) type;
傳遞的引數是你想要包裝的數值的位址(如乙個nssize或者你自己的struct)。通常,得到的是你想要儲存的變數的位址,你也可以提供乙個用來描述這個資料型別的字串,通常用來說明struct中實體的型別和大小。如下例所示,將nsrect放入到nsarray中:
nsrect rect = nsmakerect(1, 2, 30, 40);
nsvalue *value;
value = [nsvalue valuewithbytes: &rect
objctype: @encode(nsrect)];
[array addobject: value];
可以使用getvalue:來提供數值:
- (void) getvalue: (void *) vaule;
value = [array objectatindex:0];
[value getvalue: &rect];
cocoa提供了將常用的struct型資料轉換成nsvalue便捷方法,如下所示:
+ (nsvalue*) valuewithpoint:(nspoint) point;
+ (nsvalue*) valuewithsize:(nssize) size;
+ (nsvalue*) valuewithrect:(nsrect) rect;
- (nspoint) pointvalue;
- (nssize) sizevalue;
- (nsrect) rectvalue; 例:
value = [nsvalue valuewithrect:rect];
[array addobject:value];
…nsrect anotherrect = [value rectvalue];
有時確實需要存乙個null值,而大多數的物件裡面是不允許存nil值的,那麼使用nsnull就可以解決這個問題。
+ (nsnull *) null; 例:
[contact setobject:[nsnull null]
forkey:@」home fax machine」];
那麼怎麼進行訪問及判斷呢:
id homefax;
homefax = [contact objectforkey:@」home fax machine」];
if(homefax == [nsnull null])
寒假筆記 各種數
卡特蘭數又稱卡塔蘭數,英文名catalan number,是組合數學中乙個常出現在各種計數問題 現的數列。以比利時的數學家歐仁 查理 卡塔蘭 1814 1894 的名字來命名,其前幾項為 從第零項開始 1,1,2,5,14,42,132,429,1430,4862,16796,58786,20801...
VBA之連線各種資料庫
1.連線各種資料庫介面 dim conn as new adodb.connection conn.open provider microsoft.ace.oledb.12.0 data source d data edata.xlsx extended properties excel 12.0 ...
WPF 繫結各種資料來源之Datatable
一 binding是wpf的核心,wpf的資料來源有以下幾種 1 ado.net中的datatable 2 xml資料來源 3 object資料來源 4 元素控制項屬性 二 wpf繫結各種資料來源索引 wpf 繫結各種資料來源之 datatable wpf 繫結各種資料來源之 object 資料來源...