NSNumber
main.m
//
// main.m
// NSNumber
//
// Created by zhaogang on 16/5/8.
// Copyright © 2016年 zhaogang. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//@20 将20包装成一个NSNumber对象
NSArray *array = @[
@{@"name" : @"jack" , @"age" : @20},
@{@"name" : @"rose" , @"age" : @21},
@{@"name" : @"hobe" , @"age" : [NSNumber numberWithInt:19]}
];
// 将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'a'; // NSNumber对象
@"a"; // NSString对象
// 将age变量包装成NSNumber对象
int age = 10;
@(age);
NSNumber *n = [NSNumber numberWithDouble:10.5];
int d = [n doubleValue];
int a = 20;
NSString *str = [NSString stringWithFormat:@"%d",a];
[str intValue];
return 0;
}
void test()
{
NSNumber *num = [NSNumber numberWithInteger:10];
NSDictionary *dict = @{
@"name" : @"jack",
@"address" : @"beijing",
@"age" : num
};
NSNumber *num2 = dict[@"age"];
NSLog(@"%d", [num2 intValue]);
}
NSValue
main.m
//
// main.m
// NSValue
//
// Created by zhaogang on 16/5/8.
// Copyright © 2016年 zhaogang. All rights reserved.
//
#import <Foundation/Foundation.h>
// NSNumber之所以能包装基本数据类型为对象,是因为集成里NSValue
int main(int argc, const char * argv[]) {
//将结构体 ---> 对象
CGPoint p = CGPointMake(10, 10);
//将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p];
// 将value转为对应的结构体
//[value pointerValue];
NSArray *array = @[value];
return 0;
}