OC 封裝 拆包

2021-07-16 22:03:20 字數 1707 閱讀 8668

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 拆包 ...