iOS description的简单使用
2019-07-25 本文已影响0人
jimmywife
1.废话不多说直接贴代码
#import <Foundation/Foundation.h>
@interface testObj : NSObject
@property (nonatomic , copy) NSString * name;
@property (nonatomic , assign) NSInteger age;
- (instancetype)initWithName:(NSString *)name age:(NSInteger )age;
@end
#import "testObj.h"
@implementation testObj
- (instancetype)initWithName:(NSString *)name age:(NSInteger )age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}
2.重写方法之前看打印效果和arr打印对比
- (void)viewDidLoad {
[super viewDidLoad];
//数组
NSArray *arr = @[@"name",@"type"];
NSLog(@"arr = %@",arr);
//自己的类
testObj *test1 = [[testObj alloc]initWithName:@"jimmy" age:10];
NSLog(@"test1 = %@",test1);
}
#打印结果
arr = (
name,
type
)
test1 = <testObj: 0x608000023f20>
3.重写方法后,打印结果
//重写description方法---最简单的打印
- (NSString *)description{
//我们重写时,还是要打印那个类名,地址,这样会更加清晰
return [NSString stringWithFormat:@"%@ : %p, %@,%ld",[self class],self,_name,_age];
}
//打印结果
arr = (
name,
type
)
test1 = testObj : 0x60000003fde0, jimmy,10
#重写一个更清晰的打印效果
//封装为字典的打印
-(NSString *)description {
return [NSString stringWithFormat:@"%@ : %p , %@",[self class],self,@{@"name":_name,@"age":@_age}];
}
//打印结果—更加一目了然
test1 = testObj : 0x600000030e20 , {
age = 10;
name = jimmy;
}