如题:有一个Person类,里面重写了description方法,实现返回姓名,年龄等信息。这样我可以直接通过NSLog(@"%@",per); 来输出对象信息。但是如果我把对象存入数组中,然后输出数组:NSLog(@"%@", array);这样输出的结果都是UTF8编码。如果对象per内部的信息是因为和数字的话结果不受影响,如果是中文的话输出的就是UTF8。这是为什么呢?如果才能让输出正常?
#import
@interface Person : NSObject
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *sex;
@property(nonatomic, assign) int age;
@end
///////////////////////////////////
#import "Person.h"
@implementation Person
(id)initWithName:(NSString *)name
{
if( (self = [super init]) != nil )
{
self.name = name;
}
return self;
}
(NSString *)description
{
return [NSString stringWithFormat:@"姓名:%@\t性别:%@\n年龄:%d", _name, _sex, _age];
}
/////////////////////////////////
#import
#import "Person.h"
int main(int argc, const char * argv[])
{
Person *per1 = [[Person alloc] initWithName:@"张三"];
Person *per2 = [[Person alloc] initWithName:@"张三"];
Person *per3 = [[Person alloc] initWithName:@"张三"];
per1.sex = @"男";
per1.age = 230;
NSLog(@"%@", per2); //输出正常
NSMutableArray *array = [NSMutableArray arrayWithObjects:per1,per2, per3, nil];
NSLog(@"%@", array); //输出不正常
return 0;
}
求大神解救!!!
输出结果:
2014-08-28 16:28:57.384 NSLogTest[1676:303] 姓名:张三 性别:(null)
年龄:0
2014-08-28 16:28:57.397 NSLogTest1676:303\n\U5e74\U9f84\Uff1a0",
"\U59d3\U540d\Uff1a\U5f20\U4e09\t\U6027\U522b\Uff1a(null)\n\U5e74\U9f84\Uff1a0"
)
Program ended with exit code: 0
Product->Edit Schema->info->Debugger把LLDB修改成GDB就可以了。
把array转成nsstring试试看