zoukankan      html  css  js  c++  java
  • Object-c学习之路十(NSNumber&NSValue)


    //
    //  main.m
    //  NSNumberAndNSValue
    //
    //  Created by WildCat on 13-7-26.
    //  Copyright (c) 2013年 wildcat. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #pragma mark 对基本数据类型进行包装
    void  number(){
        NSNumber *number=[NSNumber numberWithInt:6];
        NSLog(@"%@",number);
        NSArray *array=[NSArray arrayWithObjects:number, nil];
        NSNumber *number2=[array objectAtIndex:0];
        int a=[number2 intValue];
        NSLog(@"%i",a);
    }
    #pragma mark 对结构体等类型进行包装
    void value(){
        //创建一个Point结构体
        CGPoint point=CGPointMake(10, 12);
        //包装
        NSValue *value1=[NSValue valueWithPoint:point];
        //创建一个数组
        NSMutableArray *array=[NSMutableArray array];
        //添加元素
        [array addObject:value1];
    }
    #pragma mark - 对自定义结构体进行包装
    
    #pragma mark 定义一个结构体
    typedef struct{
        int year;
        int month;
        int day;
    } Date;
    
    void valueUser(){
        Date date1={2013,7,26};
        //包装   value:要传一个指针 withObjCType:要传一个类型包装后的字符串 (即:char *type=@encode(Date))
        char * type=@encode(Date);
        NSValue *dvalue=[NSValue value:&date1 withObjCType:type];
        //取出
        Date newDate;
        [dvalue getValue:&newDate];
        NSLog(@"year:%i,month:%i,day:%i",newDate.year,newDate.month,newDate.day);
    
    
    }
    
    int main(int argc, const char * argv[])
    {
    
        @autoreleasepool {
            
            number();
            valueUser();
        }
        return 0;
    }
    






  • 相关阅读:
    Sublime : python环境
    shell:遍历目录和子目录的所有文件
    Java:方法的参数是传值还是传引用
    Sublime Text:Windows下配置C 编译环境和GDB调试环境
    代码优化的一些尝试
    go:关于变量地址的疑惑
    go:结构体的可访问性
    go:channel(未完)
    H5常见问题及解决方案。
    谷歌插件大全地址
  • 原文地址:https://www.cnblogs.com/aukle/p/3221725.html
Copyright © 2011-2022 走看看