特殊类型的包装类:数组、结构体(OC内部的、自定义的)、指针

  1. //
  2. // main.m
  3. // 05-NSValue
  4. //
  5. // Created by ma c on 15/8/17.
  6. // Copyright (c) 2015年. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. typedef struct
  11. {
  12. char *name;
  13. int age;
  14. char gender;
  15. }Student;
  16.  
  17. int main(int argc, const char * argv[])
  18. {
  19. @autoreleasepool
  20. {
  21. //NSValue测试
  22. //1.指针
  23. int num = ;
  24. int *p = &num;
  25. NSValue *value1 = [NSValue valueWithPointer:p];
  26. int *p2 = (int*)[value1 pointerValue];
  27. NSLog(@"num = %d",*(p2));
  28.  
  29. //2.数组
  30. int arr[] = {,,,,};
  31. NSValue *value2 = [NSValue valueWithPointer:arr];
  32. int *p3 = (int*)[value2 pointerValue];
  33. for(int i=; i<; i++)
  34. {
  35. NSLog(@"%d",p3[i]);
  36. }
  37.  
  38. //3.Foundation中常用的结构体:NSRange\NSRect\NSSize\NSPoint
  39. NSRange range = NSMakeRange(, );
  40. NSValue *value3 = [NSValue valueWithRange:range];
  41. NSRange range2 = [value3 rangeValue];
  42. NSLog(@"%@",NSStringFromRange(range2));
  43.  
  44. NSRect rect = NSMakeRect(, , , );
  45. NSValue *value4 = [NSValue valueWithRect:rect];
  46. NSRect rect2 = [value4 rectValue];
  47.  
  48. NSLog(@"%@",NSStringFromRect(rect2));
  49.  
  50. //4.自定义的结构体
  51. Student stu = {"Tom",,'M'};
  52. NSValue *value5 = [NSValue valueWithBytes:&stu objCType:@encode(Student)];
  53. NSLog(@"%s",@encode(Student));//输出结构体类型
  54.  
  55. Student stu2;
  56. [value5 getValue:&stu2];
  57. NSLog(@"name = %s,age = %i,gender = %c",stu2.name,stu2.age,stu2.gender);
  58. }
  59. return ;
  60. }

Objective-C:NSValue类的常见用法的更多相关文章

  1. Date类的常见用法——JavaSE基础

    Date类的常见用法 Date类属于java.util包 因此需要导入Date类 Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒). Date(long da ...

  2. Objective-C:NSString类的常见用法

    几种常见的用法为:字符串的创建.字符串的搜索.字符串的比较.字符串的转换 用途一:字符串的创建 void ex1() { //1.常量字符串的对象 NSString *str1 = @"he ...

  3. java枚举类的常见用法

    枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比 ...

  4. Objective-C:NSNumber类的常见用法

    NSNumber基本数据类型包装类: // //  main.m //  04-NSNumber // //  Created by ma c on 15/8/17. //  Copyright (c ...

  5. JAVA中数组Arrays类的常见用法

    import java.util.Arrays; int[] array1={7,8,3,2,12,6,5,4}; 1.  //克隆clone  int[] array2=array1.clone() ...

  6. C++的string类常见用法

    C++的string常见用法,在网上看到一篇,但是不能在c++11编译器下运行,我修改了下,还没改完: #include<iostream> #include<string> ...

  7. Linux中find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  8. Guava中Predicate的常见用法

    Guava中Predicate的常见用法 1.  Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...

  9. find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

随机推荐

  1. Python 多线程 实例

    多线程实例 import threading import time def eat(): eatTime = time.time() for i in range(30): print('count ...

  2. Java使用AES加密解密

    AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用来替代原先的 ...

  3. Acer宏碁暗影骑士3进阶版无法进入系统引导修复

    1.刚开机时,按住alt不放,不停点击F10进入恢复系统: 2.点击疑难解答,选择cmd: 3.以下是cmd命令,//注释不要复制 c: //进入C盘 cd windows cd system32 b ...

  4. [BZOJ 4591] 超能粒子炮-改

    Link: 传送门 Solution: 记录一下推$\sum_{i=0}^k C_n^i$的过程: 其实就是将相同的$i/p$合起来算,这样每个里面都是一个可以预处理的子问题 接下来递归下去算即可 T ...

  5. 【洛谷】2473:[SCOI2008]奖励关【期望DP(倒推)】

    P2473 [SCOI2008]奖励关 题目背景 08四川NOI省选 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不 ...

  6. [转]Android使用Application总结

        目录(?)[+]   Application 配置全局Context 第一步.写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里 ...

  7. SnackDown Longest Increasing Subsequences 构造题

    Longest Increasing Subsequences 题目连接: https://www.codechef.com/SNCKPA16/problems/MAKELIS Description ...

  8. Codeforces Round #350 (Div. 2) D1. Magic Powder - 1 二分

    D1. Magic Powder - 1 题目连接: http://www.codeforces.com/contest/670/problem/D1 Description This problem ...

  9. 移动端适配之REM

    随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏 ...

  10. C#高级编程9-第7章 运算符和类型强制转换

    运算符和类型强制转换 1.运算符 运算符的简化操作 条件运算符: if-else的简化操作,也称三元运算符.如果条件为真,返回一个值,为假返回另外一个值. condition?true_value:f ...