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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彈指っ紅顏老 中级黑马   /  2014-11-27 16:24  /  1450 人查看  /  12 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

最近在看OC的类和对象,我按照视频的讲解也写了个类Person,里面加了个属性char *name,新建对象以后给它赋值成中文然后输出直接略过不显示……想问一下是为啥啊?C里面明明可以定义中文字符串的啊,OC里面怎么保存和输出中文?

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

12 个回复

倒序浏览
用NSString *name
回复 使用道具 举报
你把代码发上来,oc中是兼容c的,char完全可以使用中文的,你肯定有代码写错了
回复 使用道具 举报
weizhang00 发表于 2014-11-27 18:54
你把代码发上来,oc中是兼容c的,char完全可以使用中文的,你肯定有代码写错了 ...
  1. #import <Foundation/Foundation.h>

  2. @interface Person : NSObject
  3. {
  4.     @public
  5.     int age;
  6.     int weight;
  7.     char *name;
  8. }

  9. - (void)walk;
  10. - (void)eat;

  11. @end

  12. @implementation Person

  13. - (void)walk
  14. {
  15.     NSLog(@"%d岁,%d公斤的%s去火星了",age,weight,name);
  16. }

  17. - (void)eat
  18. {
  19.     NSLog(@"%d岁,%d公斤的%s吃粑粑了",age,weight,name);
  20. }

  21. @end

  22. int main()

  23. {
  24.     Person *p=[Person new];
  25.     p->age=24;
  26.     p->weight=80;
  27.     p->name="狗蛋儿";
  28.    
  29.     [p walk];
  30.     [p eat];
  31.    
  32.     return 0;
  33. }
复制代码

60198FD6-191E-4A23-BE24-D6CD9D9E9F35.png (142.28 KB, 下载次数: 7)

60198FD6-191E-4A23-BE24-D6CD9D9E9F35.png
回复 使用道具 举报
我没接触到这里,布吉岛,但是我想问一下,char类型的能兼容字符串吗,不是char数组加‘\0’才行吗?
回复 使用道具 举报
我爱吃丶柠檬 发表于 2014-11-28 12:18
我没接触到这里,布吉岛,但是我想问一下,char类型的能兼容字符串吗,不是char数组加‘\0’才行吗? ...

双引号的字符串自带‘\0’啊~
{'i','t','\0'}=="it"
回复 使用道具 举报
这个貌似是因为C语言里的字符串带中文不能用NSLog输出,好像要用printf,我记着有这么一说来着。。
回复 使用道具 举报
还没看到那里,不过感觉好牛叉啊  呵呵
回复 使用道具 举报
我也试了下,确实不能打印出来
只能转NSString来配合NSLog了
要不就用printf
回复 使用道具 举报
oc中用NSString *name 保存,可以接收char类型,也可以像char一样使用,输出用%@,但要配合nslog
回复 使用道具 举报
NSLog输出char *的中文内容是不行的。要么直接使用NSString,要么用NSUTF8stringEncoding把char *转成NSString对象,再输出。
回复 使用道具 举报
weizhang00 发表于 2014-11-28 16:49
oc中用NSString *name 保存,可以接收char类型,也可以像char一样使用,输出用%@,但要配合nslog ...

好吧,虽然还没看到NSString是什么,不过谢谢啦,我再往后看看视频吧~
回复 使用道具 举报
LKWinIos 发表于 2014-11-29 18:21
NSLog输出char *的中文内容是不行的。要么直接使用NSString,要么用NSUTF8stringEncoding把char *转成NSStr ...

我学的还太浅,NSString只是听说过没用过,后面那一大串根本就没见过……我还是再努力学习吧~不理你如何还是很感谢你的指点~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马