Objective-C:NSValue类的常见用法
特殊类型的包装类:数组、结构体(OC内部的、自定义的)、指针
- //
- // main.m
- // 05-NSValue
- //
- // Created by ma c on 15/8/17.
- // Copyright (c) 2015年. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- typedef struct
- {
- char *name;
- int age;
- char gender;
- }Student;
- int main(int argc, const char * argv[])
- {
- @autoreleasepool
- {
- //NSValue测试
- //1.指针
- int num = ;
- int *p = #
- NSValue *value1 = [NSValue valueWithPointer:p];
- int *p2 = (int*)[value1 pointerValue];
- NSLog(@"num = %d",*(p2));
- //2.数组
- int arr[] = {,,,,};
- NSValue *value2 = [NSValue valueWithPointer:arr];
- int *p3 = (int*)[value2 pointerValue];
- for(int i=; i<; i++)
- {
- NSLog(@"%d",p3[i]);
- }
- //3.Foundation中常用的结构体:NSRange\NSRect\NSSize\NSPoint
- NSRange range = NSMakeRange(, );
- NSValue *value3 = [NSValue valueWithRange:range];
- NSRange range2 = [value3 rangeValue];
- NSLog(@"%@",NSStringFromRange(range2));
- NSRect rect = NSMakeRect(, , , );
- NSValue *value4 = [NSValue valueWithRect:rect];
- NSRect rect2 = [value4 rectValue];
- NSLog(@"%@",NSStringFromRect(rect2));
- //4.自定义的结构体
- Student stu = {"Tom",,'M'};
- NSValue *value5 = [NSValue valueWithBytes:&stu objCType:@encode(Student)];
- NSLog(@"%s",@encode(Student));//输出结构体类型
- Student stu2;
- [value5 getValue:&stu2];
- NSLog(@"name = %s,age = %i,gender = %c",stu2.name,stu2.age,stu2.gender);
- }
- return ;
- }
Objective-C:NSValue类的常见用法的更多相关文章
- Date类的常见用法——JavaSE基础
Date类的常见用法 Date类属于java.util包 因此需要导入Date类 Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒). Date(long da ...
- Objective-C:NSString类的常见用法
几种常见的用法为:字符串的创建.字符串的搜索.字符串的比较.字符串的转换 用途一:字符串的创建 void ex1() { //1.常量字符串的对象 NSString *str1 = @"he ...
- java枚举类的常见用法
枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比 ...
- Objective-C:NSNumber类的常见用法
NSNumber基本数据类型包装类: // // main.m // 04-NSNumber // // Created by ma c on 15/8/17. // Copyright (c ...
- JAVA中数组Arrays类的常见用法
import java.util.Arrays; int[] array1={7,8,3,2,12,6,5,4}; 1. //克隆clone int[] array2=array1.clone() ...
- C++的string类常见用法
C++的string常见用法,在网上看到一篇,但是不能在c++11编译器下运行,我修改了下,还没改完: #include<iostream> #include<string> ...
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
随机推荐
- Python 多线程 实例
多线程实例 import threading import time def eat(): eatTime = time.time() for i in range(30): print('count ...
- Java使用AES加密解密
AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用来替代原先的 ...
- Acer宏碁暗影骑士3进阶版无法进入系统引导修复
1.刚开机时,按住alt不放,不停点击F10进入恢复系统: 2.点击疑难解答,选择cmd: 3.以下是cmd命令,//注释不要复制 c: //进入C盘 cd windows cd system32 b ...
- [BZOJ 4591] 超能粒子炮-改
Link: 传送门 Solution: 记录一下推$\sum_{i=0}^k C_n^i$的过程: 其实就是将相同的$i/p$合起来算,这样每个里面都是一个可以预处理的子问题 接下来递归下去算即可 T ...
- 【洛谷】2473:[SCOI2008]奖励关【期望DP(倒推)】
P2473 [SCOI2008]奖励关 题目背景 08四川NOI省选 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不 ...
- [转]Android使用Application总结
目录(?)[+] Application 配置全局Context 第一步.写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里 ...
- SnackDown Longest Increasing Subsequences 构造题
Longest Increasing Subsequences 题目连接: https://www.codechef.com/SNCKPA16/problems/MAKELIS Description ...
- Codeforces Round #350 (Div. 2) D1. Magic Powder - 1 二分
D1. Magic Powder - 1 题目连接: http://www.codeforces.com/contest/670/problem/D1 Description This problem ...
- 移动端适配之REM
随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏 ...
- C#高级编程9-第7章 运算符和类型强制转换
运算符和类型强制转换 1.运算符 运算符的简化操作 条件运算符: if-else的简化操作,也称三元运算符.如果条件为真,返回一个值,为假返回另外一个值. condition?true_value:f ...