oc 中封裝、拆包基本資料型別
使用nsvalue / nsnumber
使用封裝可以將oc和c當中的基本資料及型別轉換成例項物件,即 值型別 轉換為 引用型別
封裝
//我們首先定義一下c和oc中常用的資料型別
int a = 5;
float b = 5.0;
double c =5.5;
char d = 'a';
bool flag = yes;
cgpoint point = cgpointmake(3, 4);
cgsize size = cgsizemake(5, 6);
cgrect rect = cgrectmake(3, 4, 5, 6);
nsrange range = nsmakerange(10, 3);
nsedgeinsets edgeinsets = nsedgeinsetsmake(10, 10, 10, 10);
//使用 nsvalue 進行轉換,可以將 cgpoint、cgsize、cgrect、nsrange、nsedgeinsets 轉換成物件
nsvalue *pointva = [nsvalue valuewithpoint:point];
nsvalue *sizeva = [nsvalue valuewithsize:size];
nsvalue *rectva = [nsvalue valuewithrect:rect];
nsvalue *rangeva = [nsvalue valuewithrange:range];
nsvalue *edgeva = [nsvalue valuewithedgeinsets:edgeinsets];
//使用 nsnumber 進行轉換,可以將int、float、double、char、bool 轉換成物件
nsnumber *intnum = [nsnumber numberwithint:a];
nsnumber *floatnum = [nsnumber numberwithfloat:b];
nsnumber *doublenum = [nsnumber numberwithdouble:c];
nsnumber *charnum = [nsnumber numberwithchar:d];
nsnumber *boolnum = [nsnumber numberwithbool:flag];
拆包
int a1 = [intnum intvalue];
float b1 = [floatnum floatvalue];
double c1 = [doublenum doublevalue];
char d1 = [charnum charvalue];
bool flag1 = [boolnum boolvalue];
cgpoint point1 = [pointva pointvalue];
cgsize size1 = [sizeva sizevalue];
cgrect rect1 = [rectva rectvalue];
nsrange rang1 = [rangeva rangevalue];
nsedgeinsets edg1 = [edgeva edgeinsetsvalue];
OC中封裝,拆包基本資料型別
oc中封裝,拆包基本資料型別 foundation框架下的基礎類 nsvalue nsnumber 功能 將oc和c中的基本資料型別轉化為例項物件,即將 值型別 轉化成 引用型別 oc中常用的型別int a 5 float b 5.0 double c 5.5 char d a bool flag ...
Object C 封裝 拆包基本資料型別
功能 將oc和c當中的基本資料型別轉換成例項物件,即將值型別轉換成引用型別 object c的基本資料資料型別 int a 5 float b 4.5 double c 34.5545 char d c bool flag yes cgpoint point cgsize size cgrect r...
swift 可選型別,強制拆包,隱性拆包
當我們不知道變數的值時,可以將改變量設定為可選型別 表明str是可選型別 string型別或者nil型別 var str string?表明str是可選型別 是string型別或者nil型別 var str string?hello world str str?uppercasestring 拆包 ...