Objective-C中将枚举值转换为字符串字面量,需要在单引号内。

5

AudioToolbox/AudioServices.h 中找到了枚举声明

enum
{
    kAudioSessionNoError                                =  0,
    kAudioSessionNotInitialized                         = '!ini',
    kAudioSessionAlreadyInitialized                     = 'init',
    kAudioSessionInitializationError                    = 'ini?',
    kAudioSessionUnsupportedPropertyError               = 'pty?',
    kAudioSessionBadPropertySizeError                   = '!siz',
    kAudioSessionNotActiveError                         = '!act',
    kAudioServicesNoHardwareError                       = 'nohw',
    kAudioSessionNoCategorySet                          = '?cat',
    kAudioSessionIncompatibleCategory                   = '!cat',
    kAudioSessionUnspecifiedError                       = 'what'
};

我真的不太理解这个声明实际上是什么意思。谷歌没有提供任何信息。请帮忙一下吗?


1
哦,某种4个字符的非空终止数组放在应该是4字节整数的地方?相当奇怪。 - Alexander N.
1个回答

9
这些被称为“四字符代码”:

http://en.wikipedia.org/wiki/FourCC

它们被转换为整数(32位,因为它们是4个字符),但与数字值相比,可读性得到了提高。 苹果公司长期以来一直在使用这种方式,主要用于OSStatus代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接