iOS中的NSValue
2015-08-12 11:12
573 查看
struct student{ char name[20]; char gender; }; typedef struct student Student; int main(int argc, const char * argv[]) { @autoreleasepool { //NSValue 数值类,将指针,结构体等转换成对象 int a = 10; int *p = &a; NSMutableArray *array = [NSMutableArray arrayWithCapacity:1]; NSValue *value = [NSValue valueWithPointer:p]; [array addObject:value]; //void *是泛型 int *newP = [value pointerValue]; NSLog(@"%d",*newP); //NSRange NSRange range = {14,35}; //NSRange range1 = NSMakeRange(3, 5); // [array addObject:range1]; //[array addObject:range]; //将NSRange 结构体转换为NSValue NSValue *rangeValue = [NSValue valueWithRange:range]; [array addObject:rangeValue]; //将NSRange 转换成NSRange NSRange newRange = {0}; newRange = [rangeValue rangeValue]; NSLog(@"%lu,%lu",newRange.location,newRange.length); Student stu = {"laowang",'m'}; //自定义结构体转换成NSVlaue对象 NSValue *stuValue = [NSValue valueWithBytes:&stu objCType:@encode(Student)]; //NSValue 对象 转换成结构体 Student newStu = {0}; [stuValue getValue:&newStu]; NSLog(@"%s,%c",newStu.name,newStu.gender);
相关文章推荐
- KMP算法的next、next value数组代码实现及POJ3461
- iOS UICollectionView实现瀑布流(3)
- LeetCode题解:Implement Stack using Queues
- UE4 Editor View Modes
- 更新sdk后遇到This Android SDK requires Android Developer Toolkit version 20.0.0 or above
- iOS基础-UIKit框架-高级视图-UIDatePicker
- WM_CLOSE WM_QUIT WM_DESTROY 三者的区别
- Bit Manipulation - Repeated DNA Sequences
- ios开发之实现长按UITableViewCell弹出UIMenuController
- LeetCode:Implement Queue using Stacks
- xquery 除法 和节点个数
- 自己封装的Metro风格的后台UI框架,暂命名MUI(持续更新)
- iOS UITextView内容添加后,自动滚动到最后一行
- UICollectionView入门--使用系统UICollectionViewFlowLayout布局类
- LeetCode题解:Implement Queue using Stacks
- STL系列之一 deque双向队列
- 各种设备的CSS3 MediaQuery整理及爽歪歪写法
- HDU 3397 Sequence operation(线段树·成段更新·区间合并·混合操作)
- Android详细的对话框AlertDialog.Builder小示例
- EasyUI学习笔记8:MIS开发利器_ datagrid插件(下)(终结篇)