A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

欢迎大家讨论 ,优化解决方案


  1. #import <Foundation/Foundation.h>
  2. //给NSArray 写了一个Category 类别
  3. #import "NSArray+YYNSArrayChina.h"

  4. int main(int argc, const char * argv[]) {
  5.     @autoreleasepool {
  6.         
  7.         NSArray *array = @[@"abc",@"你好",@"123",@"世界"];

  8. //        第一种打印方法
  9.         NSLog(@"array = %@",array);
  10. //        2016-04-14 19:26:11.671 中文打印有关Array,Dictionary的问题[1658:620283] array = (
  11. //                                                                                abc,
  12. //                                                                                "\U4f60\U597d",
  13. //                                                                                123,
  14. //                                                                                "\U4e16\U754c"
  15. //                                                                                )
  16. //        若重写方法-(NSString *)descriptionWithLocale:(id)locale后,则:
  17. //        2016-04-14 20:42:13.487 数组Array 遍历方法及打印中文问题[1853:770536] array = (
  18. //                                                                          abc,
  19. //                                                                          你好,
  20. //                                                                          123,
  21. //                                                                          世界
  22. //                                                                          )
  23. //        
  24. //******************************************************************************************************

  25. //        第二种打印方法
  26. //        for (id obj in array) {
  27. //            NSLog(@"%@",obj);
  28. //        }
  29. //        2016-04-14 19:29:18.119 中文打印有关Array,Dictionary的问题[1675:629206] abc
  30. //        2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 你好
  31. //        2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 123
  32. //        2016-04-14 19:29:18.120 中文打印有关Array,Dictionary的问题[1675:629206] 世界

  33. //******************************************************************************************************
  34. //
  35. //        第三种打印方法
  36. //        for (int i=0; i<array.count; i++) {
  37. //            NSLog(@"%@",array[i]);
  38. //        }
  39. //        2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] abc
  40. //        2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] 你好
  41. //        2016-04-14 19:33:30.638 中文打印有关Array,Dictionary的问题[1685:637445] 123
  42. //        2016-04-14 19:33:30.639 中文打印有关Array,Dictionary的问题[1685:637445] 世界

  43. //******************************************************************************************************

  44. //        第四种打印方法
  45. //        for (int i=0; i<array.count; i++) {
  46. //            id obj = [array objectAtIndex:i];
  47. //            NSLog(@"%@",obj);
  48. //        }
  49. //        2016-04-14 19:37:51.528 中文打印有关Array,Dictionary的问题[1696:645509] abc
  50. //        2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 你好
  51. //        2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 123
  52. //        2016-04-14 19:37:51.531 中文打印有关Array,Dictionary的问题[1696:645509] 世界

  53. //******************************************************************************************************

  54. //        第五种打印方法
  55. //        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  56. //            NSLog(@"%ld----%@",idx,obj);
  57. //        }];
  58. //        2016-04-14 19:40:32.667 中文打印有关Array,Dictionary的问题[1707:649271] 0----abc
  59. //        2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 1----你好
  60. //        2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 2----123
  61. //        2016-04-14 19:40:32.668 中文打印有关Array,Dictionary的问题[1707:649271] 3----世界


  62.     }
  63.     return 0;
  64. }
复制代码

4 个回复

倒序浏览
在类别.m文件中实现重写的方法
//  NSArray+YYNSArrayChina.m

  1. #import "NSArray+YYNSArrayChina.h"

  2. @implementation NSArray (YYNSArrayChina)
  3. //重写打印时系统调用的方法
  4. -(NSString *)descriptionWithLocale:(id)locale{

  5.     NSMutableString *mystr = [NSMutableString string];
  6.     [mystr appendString:@"("];
  7.    
  8.     for (id obj in self) {
  9.         
  10.         [mystr appendFormat:@"\n\t%@,",obj];
  11.     }
  12.     if ([mystr hasSuffix:@","]) {
  13.         NSString *str = [mystr substringToIndex:mystr.length - 1];
  14.         mystr = [NSMutableString stringWithString:str];
  15.     }
  16.     [mystr appendString:@"\n)"];
  17.    
  18.     return mystr;
  19. }

  20. @end
复制代码
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马