黑马程序员技术交流社区

标题: 枚举的问题 [打印本页]

作者: haha92210    时间: 2014-11-22 11:53
标题: 枚举的问题
枚举的值如何输出
typedef enum{
    ColorYellow,
    ColorRed,
    ColorWhite
}Color;
我想直接打印出ColorYellow
Nslog(@"%s",a->color)
可以这么输出吗? 怎么敲?  麻烦了
作者: 万雷    时间: 2014-11-22 12:15
不可以  你只是 定义了枚举类型   而没有定义枚举变量  而且 你这 个枚举定义的好像有点问题  正确的 应该是
enum Color{
    ColorYellow,
    ColorRed,
    ColorWhite
};
enum Color c=ColorRed;
Nslog(@"%s",c)
作者: haha92210    时间: 2014-11-22 17:08
万雷 发表于 2014-11-22 12:15
不可以  你只是 定义了枚举类型   而没有定义枚举变量  而且 你这 个枚举定义的好像有点问题  正确的 应该 ...

谢谢  你的这个写法我倒是能明白表达的意思 不过  我是在视频0804那天的代码学到的这种定义方式啊。。。{:2_34:}你的这个枚举定义是在那一讲有说啊?是c还是oc啊?
作者: haha92210    时间: 2014-11-22 17:16
万雷 发表于 2014-11-22 12:15
不可以  你只是 定义了枚举类型   而没有定义枚举变量  而且 你这 个枚举定义的好像有点问题  正确的 应该 ...

typedef enum{
    ColorYellow,
    ColorRed,
    ColorWhite
}Color;
...
@interface Dog : NSObject
{
    @public
    Color curColor;
    double weight;
}
...
d->curColor = ColorYellow;
...
nslog(@"%s",d->curColor);
完整是这样的  有定义的  他会有警告  format specofies type 'char*'......
作者: Jr_711    时间: 2014-11-22 18:29
haha92210 发表于 2014-11-22 17:08
谢谢  你的这个写法我倒是能明白表达的意思 不过  我是在视频0804那天的代码学到的这种定义方式啊。。。{ ...

你的是在枚举的同时用了typedef,2楼只是简单的枚举
作者: haha92210    时间: 2014-11-22 22:29
Jr_711 发表于 2014-11-22 18:29
你的是在枚举的同时用了typedef,2楼只是简单的枚举

那请问 如何才能输出我枚举的对象啊   
作者: haha92210    时间: 2014-11-22 22:33
本帖最后由 haha92210 于 2014-11-23 12:58 编辑

好吧  我晒图 希望来人帮忙解决下啊
作者: Jr_711    时间: 2014-11-23 13:10
haha92210 发表于 2014-11-22 22:29
那请问 如何才能输出我枚举的对象啊

枚举这么写,应该只是给程序员(比如同事)看的,要使用你的枚举时候,好明白你的枚举里的量都代表什么,

打印出来,还是相对应的0,1,2...,我也不知道有没有直接打印的函数

我想着可以自己写个条件语句来实现


作者: haha92210    时间: 2014-11-24 10:23
Jr_711 发表于 2014-11-23 13:10
枚举这么写,应该只是给程序员(比如同事)看的,要使用你的枚举时候,好明白你的枚举里的量都代表什么, ...

哦 这样啊  是加个if或者switch判断吗?  那判断的条件 里面添个指向该属性的指针就行吗?
作者: 万雷    时间: 2014-11-24 13:00
haha92210 发表于 2014-11-22 17:08
谢谢  你的这个写法我倒是能明白表达的意思 不过  我是在视频0804那天的代码学到的这种定义方式啊。。。{ ...

C  中  枚举 那一节
作者: haha92210    时间: 2014-11-25 13:44
万雷 发表于 2014-11-24 13:00
C  中  枚举 那一节

感谢   昨天复习的时候看到了
谢谢谢谢
作者: 云无心ii    时间: 2014-11-25 14:57
打印出来是 0 1 之类的吧好像 应该用%d?
作者: haha92210    时间: 2014-11-25 15:57
云无心ii 发表于 2014-11-25 14:57
打印出来是 0 1 之类的吧好像 应该用%d?

我所期望的是打出枚举类型中定义的字符  所以  貌似只能加判断  当返回值为 1或0  nslog 男或女
作者: 云无心ii    时间: 2014-11-25 17:26
haha92210 发表于 2014-11-25 15:57
我所期望的是打出枚举类型中定义的字符  所以  貌似只能加判断  当返回值为 1或0  nslog 男或女 ...

这样啊 那可以用switch啊
作者: haha92210    时间: 2014-11-25 20:16
云无心ii 发表于 2014-11-25 17:26
这样啊 那可以用switch啊

我觉得可以




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2