http://bbs.itheima.com/thread-148766-1-1.html
这里我们假设有一个OC数组,然后里面放了一个Person类对象p1,
然后我们希望通过直接打印数组,得到数组里元素的相关信息。
如果直接像上面那样写的话,我们会得到类对象的内存地址
(打印一个对象:NSLog(@"%@", stu); 默认情况下打印的时对象的名字和内存地址)
然后我们再次执行程序,你会发现程序一样没有得到我们想要的结果,出现乱码非中文了。
上面的东西貌似是文字的unicode编码。
等,我们先再回顾一下思路,虽然这很简单。
打印数组,用NSLog%@",是不是也应该重写description方法?
我刚测试了,其实不用除非数组元素的description方法里含有中文。
但是,有时候又必须要有中文呢,那我们就重写description方法吧。
由于NSArray是一个系统的类,又没有在工程中有这个类的文件,所以我想到了用分类,好像也可以直接写在main函数中,那我们先写在分类里吧。
于是我尝试这样写
结果还是不行。
原来这种情况下我们要重写的是descriptionWithLocale:方法