(NSString *)descriptionWithLocale
-
关于这个方法的说明
-
使用场景:如果要在开发时,跟踪对象的明细信息,可以重写description方法,类似于java的toString(),为根类添加一个扩展
-
目前探索到nsdictionary和nsarray的分类有这个方法
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
// 遍历数组中的所有内容,将内容拼接成一个新的字符串返回
NSMutableString *strM = [NSMutableString string];
[strM appendString:@"(\n"];
// 遍历数组,self就是当前的数组
for (id obj in self) {
// 在拼接字符串时,会调用obj的description方法
[strM appendFormat:@"\t%@,\n", obj];
}
[strM appendString:@")"];
return strM;
}
@end
**自定义的类中也建议使用这个方法 这样打印的时候能打印出来详细信息方便调试
#import "Person.h"
@implementation Person
// 类似于 java 中的 toString() 方法,在 java 团队开发中,是要求必须写的
// 方便调试
// 在 iOS 团队开发中,但是建议在自定义模型中实现此方法!
- (NSString *)description {
NSDictionary *dict = [self dictionaryWithValuesForKeys:@[@"name", @"age"]];
return [NSString stringWithFormat:@"<%@: %p> %@", self.class, self, dict];
}
@end