encode 和 strcmp 關鍵字的用法

2021-06-21 12:16:01 字數 1117 閱讀 4570

專案中經常有乙個nsarray、nsdictionary 中需要儲存不同的型別的資料的時候怎麼辦?

1. 可能常用的做法是寫乙個model,那不就保證型別都一樣了嘛

2. 使用 @encode 關鍵字,先看一段**

//轉換為nsvalue

nsvalue *value = [nsvalue valuewithbytes:&loccoord objctype:@encode(cllocationcoordinate2d)];
//取值

cllocationcoordinate2d coord;

[value getvalue:&coord];

那麼如何在遍歷nsarray、nsdictionary 的時候判斷取出來的是什麼型別呢,從而對應不同的操作呢,**例子如下

nsdictionary *dic = [nsdictionary dictionarywithobjectsandkeys:[nsnumber numberwithbool:yes],@"key1",[nsnumber numberwithdouble:1.00f],@"key2",[nsnumber numberwithint:1],@"key3",[nsnumber numberwithfloat:33.0f], @"key4", nil];  

for(nsstring *key in dic)

if (strcmp(pobjctype, @encode(float)) == 0)

if (strcmp(pobjctype, @encode(double)) == 0)

if (strcmp(pobjctype, @encode(bool)) == 0)

} }

好了,下面就講講@encode 是什麼?

為了更好的互操作性,objective-c 的資料型別,甚至自定義型別、函式或方法的元型別,都可以使用 ascii 編碼。

@encode(atype) 可以返回該型別的 c 字串(char *)的表示

strlen strcpy和strcmp原始碼

1 不使用庫函式實現strcpy include char strcpy char dst,const char src return tmp 需要注意幾個方面的問題 1 注意程式設計風格。比如,使用 dst src這樣增強可讀性的名字。2 使用斷言assert來檢驗輸入引數的有效性。assert巨...

python中decode和encode的使用

python中的編碼是採用unicode編碼的,在做編譯轉換時,需要使用unicode作為中間編碼 情況一 編碼一 unicode編碼 將其他編碼的字串解碼 decode成unicode a.decode gb2312 或者 unicode.unicode a,gb2312 情況二 unicode編...

Python編碼 encode和decode的區別

code utf 8因為python 只檢查 coding 和編碼字串,所以你可能回見到下面的宣告方式,這是有些人為了美觀等原因才這樣寫的 coding utf 8 常見編碼介紹 gb2312編碼 適用於漢字處理 漢字通訊等系統之間的資訊交換 gbk編碼 是漢字編碼標準之一,是在 gb2312 80...