之前可就是扔一個(gè)分類在工程里伤锚,今天又遇到了擅笔,關(guān)鍵項(xiàng)目是Swift的,想想把之前寫的分類托進(jìn)來還得改改太麻煩了屯援,于是是想換另外一種新鮮的做法猛们。
一、復(fù)制亂碼
二狞洋、放入Chrome的網(wǎng)頁檢查器里的控制臺弯淘,然后回車,就能查看了
更新:處理更優(yōu)的做法吉懊。一個(gè)分類搞定
```objc
#import@implementation UIView(Log)
+ (NSString *)searchAllSubviews:(UIView *)superview
{
NSMutableString *xml = [NSMutableString string];
NSString *class = NSStringFromClass(superview.class);
class = [class stringByReplacingOccurrencesOfString:@"_" withString:@""];
[xml appendFormat:@"<%@ frame=\"%@\">\n", class, NSStringFromCGRect(superview.frame)];
for (UIView *childView in superview.subviews) {
NSString *subviewXml = [self searchAllSubviews:childView];
[xml appendString:subviewXml];
}
[xml appendFormat:@"\n", class];
return xml;
}
- (NSString *)description
{
return [UIView searchAllSubviews:self];
}
@end
@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
NSMutableString *string = [NSMutableString string];
// 開頭有個(gè){
[string appendString:@"{\n"];
// 遍歷所有的鍵值對
[self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[string appendFormat:@"\t%@", key];
[string appendString:@" : "];
[string appendFormat:@"%@,\n", obj];
}];
// 結(jié)尾有個(gè)}
[string appendString:@"}"];
// 查找最后一個(gè)逗號
NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
if (range.location != NSNotFound)
[string deleteCharactersInRange:range];
return string;
}
@end
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
NSMutableString *string = [NSMutableString string];
// 開頭有個(gè)[
[string appendString:@"[\n"];
// 遍歷所有的元素
[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[string appendFormat:@"\t%@,\n", obj];
}];
// 結(jié)尾有個(gè)]
[string appendString:@"]"];
// 查找最后一個(gè)逗號
NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
if (range.location != NSNotFound)
[string deleteCharactersInRange:range];
return string;
}
@end
```