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命令的参数 ...
随机推荐
- Mysql Window 下安装
http://blog.csdn.net/u013235478/article/details/50623693
- 重装Win7后找回Ubuntu启动项并在Ubuntu中修复引导
1. 输入$ sudo fdisk -l 查看磁盘信息,选择Linux的磁盘,如sda10 2. 输入$ sudo -i(此步用于得到root权限,方便以下操作.) 3. 输入$ mkdir /med ...
- 【小技巧】限制windows server 2008的最大用户登录数
把云服务器单纯当作自己一个云端主机的人大有人在.本人就是其中一位. 由于windows server 2008的会话保持机制,导致你关闭掉当前远程桌面连接,并从另外一台电脑上开启远程连接之后,另外一台 ...
- 线程池--ThreadPoolExecutor
线程池的实现原理 1)如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意,执行这一步骤 需要获取全局锁). 2)如果运行的线程等于或多于corePoolSize,则将任务加入 ...
- CSUOJ 1040 Round-number
Description Most of the time when rounding a given number, it is customary to round to some multiple ...
- 新一代数据库TiDB在美团的实践
1. 背景和现状 近几年,基于MySQL构建的传统关系型数据库服务,已经很难支撑美团业务的爆发式增长,这就促使我们去探索更合理的数据存储方案和实践新的运维方式.而随着分布式数据库大放异彩,美团DBA团 ...
- iOS Sprite Kit教程之xcode安装以及苹果帐号绑定
iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其它的网站上下载安装Xcode 有时候,应用商店下载较慢,所以用户也可以选择从其他网站下载Xcode安装文件.下面讲解这种Xcode的 ...
- CSS3组件化之菊花loading
<div class="juhua-loading"> <div class="jh-circle"></div> < ...
- python opencv3 轮廓检测
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 import numpy as np # 创建一个2 ...
- java 不通过第三个字符串,实现一个字符串倒序
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha String s="abcde"; String s2 = new ...