为什么xcode7.3没有descriptionwithlocale这个xcode 方法注释

Xcode8 解决控制台无法输出中文 - 简书
Xcode8 解决控制台无法输出中文
之前后台返回的数据在控制台NSLog时一直相安无事,前段时间升了Xcode8.1之后,发现控制台输出的中文就变成了6U2D/8K3F/9C7R/之类的人类无法直接阅读的东西,解析数据读取数据时特别痛苦。之前用插件随意解决,但似乎不适用于现在。解决办法,只要新建一个类目,只需创建,不需引用,直接随意NSLog,看你想输出的。具体
具体代码.h////NSArray+MyLog.h//HonestyEducation////Created by Twinkleo on .//Copyright (C) 2016年 YuChen. All rights reserved.//#import@interfaceNSArray (MyLog)@end@interfaceNSDictionary (MyLog)@end代码.m////NSArray+MyLog.m//HonestyEducation////Created by Twinkleo on .//Copyright (C) 2016年 YuChen. All rights reserved.//#import"NSArray+MyLog.h"@implementationNSArray (MyLog)- (NSString*)descriptionWithLocale:(id)locale {NSMutableString*str = [NSMutableStringstringWithString:@"(\n"];[selfenumerateObjectsUsingBlock:^(idobj,NSUIntegeridx,BOOL*stop) {[strappendFormat:@"\t%@,\n", obj];}];[strappendString:@")"];}@end@implementationNSDictionary (MyLog)- (NSString*)descriptionWithLocale:(id)locale {NSMutableString*str = [NSMutableStringstringWithString:@"{\n"];[selfenumerateKeysAndObjectsUsingBlock:^(idkey,idobj,BOOL*stop) {[strappendFormat:@"\t%@ = %@;\n", key, obj];}];[strappendString:@"}\n"];}@endOver
放自己一条生路、1、SingleViewApplication项目,拖了一个DatePicker控件,一个Label控件,一个按钮,点击按钮将事件选择器上的时间显示在Label上。
2、代码如下:
ViewController.m
TestProject
Created by 侯家奇 on 16/8/17.
Copyright © 2016年 侯家奇. All rights reserved.
#import &ViewController.h&
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIDatePicker *dateP
@property (weak, nonatomic) IBOutlet UILabel *
- (IBAction)onclick:(id)
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)onclick:(id)sender {
NSDate *theDate = self.datePicker.
NSLog(@&the date picked is %@&, [theDate descriptionWithLocale:[NSLocale currentLocale]]);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @&YYYY-MM-dd HH:mm:ss&;
NSLog(@&the date formate is: %@&, [dateFormatter stringFromDate:theDate]);
self.label.text = [dateFormatter stringFromDate:theDate];
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:103968次
积分:2798
积分:2798
排名:第10921名
原创:167篇
转载:80篇
评论:12条
(14)(5)(5)(9)(5)(1)(3)(25)(15)(6)(11)(12)(14)(4)(1)(9)(12)(18)(22)(42)(14)(2)(12)Xcode技巧-如何显示中文_iOS开发_动态网站制作指南
Xcode技巧-如何显示中文
来源:人气:198
用Xcode开发时,有时需要跟踪对象的详细信息内容,但是有时 对象的属性中有数组并且数组的内容为中文时,用NSLog输出对象时,数组中的中文无法显示会无法显示。
//person类
#import &Foundation/Foundation.h&
@interface Person : NSObject
@operty (nonatomic,copy) NSString *
//兴趣属性,为数组
@property (nonatomic,strong) NSArray *
#import "Person.h"
@implementation Person
- (NSString *)descrtion
return [NSString stringWithFormat:@"name = %@,interests = %@",_name,_interests];
#import &Foundation/Foundation.h&
#import "Person.h"
int main(int argc, const char * argv[])
@autoreleasepool {
Person *p = [[Person alloc]init];
p.name = @"王二麻子";
p.interests = @[@"打架",@"嫖娼",@"贩毒"];
//输出p对象的内容
NSLog(@"%@",p);
输出结果:
20:24:14.887 显示中文[] name = 王二麻子,interests = (&&& "\U",&&& "\U5ad6\U5a3c",&&& "\U8d29\U6bd2")Program ended with exit code: -1
要想显示中文,需要对数组添加分类如下:
1 #import "NSArray+Log.h"
3 @implementation NSArray (Log)
5 - (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;
再次运行结果:
20:33:45.259 显示中文[] name = 王二麻子,interests = (&打架,&嫖娼,&贩毒,)
优质网站模板iOS开发UI篇—IOS开发中Xcode的一些使用技巧 - 文顶顶 - 博客园
最怕你一生碌碌无为 还安慰自己平凡可贵
iOS开发UI篇&IOS开发中Xcode的一些使用技巧
一、快捷键的使用
经常用到的快捷键如下:
shift + cmd + n & & 新建项目
cmd + n & & & & & & 新建文件
option + cmd + 回车 打开助理编辑器
cmd + 回车 & & & & & 显示主窗口
cmd + 0 & & & & & & 导航窗口
option + cmd + 0& & 工具窗口
在.m & .h之间切换 & & & & & control + cmd + 上/下
按照浏览文件的前后顺序切换 & & control + cmd + 左右
查看头文件 & & & control + cmd + j
切换到对应的函数control + 6 支持智能输入,注意输入法
cmd + r & & & & & & 运行
cmd + . & & & & & & 停止
cmd + b & & & & & & 编译
cmd + shift + b 静态内存分析编译,可以检查程序结构上是否存在内存泄露
& & control + i & & & & 将选中按钮重新缩进
& & cmd + ] & & & & & & 向右增加缩进
& & cmd + [ & & & & & & 向左减少缩进
& & cmd + / & & & & & & 注释/取消注释,提示:取消注释时,注释双斜线必须在行首
& & cmd + 向上 & & & & & 到文件开始位置
& & cmd + 向下 & & & & & 到文件末尾位置
二、OC专有注释
注释形式和效果
(1)#pragma mark 注释
(2)#pragma mark- 注释
三、warning的使用(注意)
使用形式:
#warning 代码还没有写完
可以帮助我们对代码进行快速的定位
四、代码块的使用
对于经常使用的代码块,可以以代码块的方式保存起来,设置提示词,以便快速的编码。
对代码块进行适当的编辑
使用&#name#&和&#type#&让保存的代码块不被&写死&;
设置后的提示效果:
五、打印内容查看(重写description方法的技巧)
代码示例:&  
- (NSString *)description
// 包含对象类型名称,以及对象的指针地址
return [NSString stringWithFormat:@"&%@: %p& {answer: %@, title: %@, icon: %@, options: %@}", [self class], self, self.answer, self.title, self.icon, self.options];
如果要在开发时,跟踪对象的明细信息,可以重写description方法,类似于java的toString()
为根类添加一个扩展
1 #import "NSArray+Log.h"
3 @implementation NSArray (Log)
5 - (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;
随笔 - 179
评论 - 1454

我要回帖

更多关于 oc description方法 的文章

 

随机推荐