黑马程序员技术交流社区
标题:
数组Array 遍历方法及打印中文问题 附解决办法
[打印本页]
作者:
叶子哥
时间:
2016-4-14 21:19
标题:
数组Array 遍历方法及打印中文问题 附解决办法
欢迎大家讨论 ,优化解决方案
#import <Foundation/Foundation.h>
//给NSArray 写了一个Category 类别
#import "NSArray+YYNSArrayChina.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array = @[@"abc",@"你好",@"123",@"世界"];
// 第一种打印方法
NSLog(@"array = %@",array);
// 2016-04-14 19:26:11.671 中文打印有关Array,Dictionary的问题[1658:620283] array = (
// abc,
// "\U4f60\U597d",
// 123,
// "\U4e16\U754c"
// )
// 若重写方法-(NSString *)descriptionWithLocale:(id)locale后,则:
// 2016-04-14 20:42:13.487 数组Array 遍历方法及打印中文问题[1853:770536] array = (
// abc,
// 你好,
// 123,
// 世界
// )
//
//******************************************************************************************************
// 第二种打印方法
// for (id obj in array) {
// NSLog(@"%@",obj);
// }
// 2016-04-14 19:29:18.119 中文打印有关Array,Dictionary的问题[1675:629206] abc
// 2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 你好
// 2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 123
// 2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 世界
//******************************************************************************************************
//
// 第三种打印方法
// for (int i=0; i<array.count; i++) {
// NSLog(@"%@",array[i]);
// }
// 2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] abc
// 2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] 你好
// 2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] 123
// 2016-04-14 19:33:30.639 中文打印有关Array,Dictionary的问题[1685:637445] 世界
//******************************************************************************************************
// 第四种打印方法
// for (int i=0; i<array.count; i++) {
// id obj = [array objectAtIndex:i];
// NSLog(@"%@",obj);
// }
// 2016-04-14 19:37:51.528 中文打印有关Array,Dictionary的问题[1696:645509] abc
// 2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 你好
// 2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 123
// 2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 世界
//******************************************************************************************************
// 第五种打印方法
// [array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// NSLog(@"%ld----%@",idx,obj);
// }];
// 2016-04-14 19:40:32.667 中文打印有关Array,Dictionary的问题[1707:649271] 0----abc
// 2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 1----你好
// 2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 2----123
// 2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 3----世界
}
return 0;
}
复制代码
作者:
叶子哥
时间:
2016-4-14 21:23
在类别.m文件中实现重写的方法
// NSArray+YYNSArrayChina.m
#import "NSArray+YYNSArrayChina.h"
@implementation NSArray (YYNSArrayChina)
//重写打印时系统调用的方法
-(NSString *)descriptionWithLocale:(id)locale{
NSMutableString *mystr = [NSMutableString string];
[mystr appendString:@"("];
for (id obj in self) {
[mystr appendFormat:@"\n\t%@,",obj];
}
if ([mystr hasSuffix:@","]) {
NSString *str = [mystr substringToIndex:mystr.length - 1];
mystr = [NSMutableString stringWithString:str];
}
[mystr appendString:@"\n)"];
return mystr;
}
@end
复制代码
作者:
Latinno
时间:
2016-4-16 17:25
谢谢分享
作者:
僞誰學ザ乖
时间:
2016-4-16 21:57
谢谢分享
作者:
毛小猪
时间:
2016-4-16 23:05
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2