typedef enum{ zero,one,two,three,four,five,six,seven,eight,nine}Digits;typedef enum{ zero,nine }DigitsThatIliketoUse;@H_404_7@问题:
如果我定义功能: @H_404_7@
voID takeMyFavoriteDigits(DigitsThatIliketoUse favorite); (C)-|+(voID) takeMyFavoriteDigits:(DigitsThatIliketoUse)favorite; (Objective-C)@H_404_7@我不能将它用于对基本枚举数字的反向引用,因为我在枚举DigitsThatIliketoUse中的顺序是不同的. @H_404_7@我的解决方案是写出这样的数字的明确位置: @H_404_7@
typedef enum{ zero = 0,one = 1,two = 2,nine = 9 }DigitsThatIliketoUseInEdition;@H_404_7@但!我不能遍历这个新的枚举DigitsThatIliketoUseInEdition. @H_404_7@我想在枚举中创建一个subEnum并迭代它.可能吗? @H_404_7@我最好的想法是使用这样的东西: @H_404_7@
typedef enum{ beginIteratorDigitsThatIlike,zero,nine,endIteratorDigitsThatIlike,eight }Digits;@H_404_7@但也许有任何解决方案?解决方法 (大多数情况下)没有通过添加更多级别的间接无法解决的问题: @H_404_7@ @H_404_7@
typedef enum enumDigits { digitsNone = -1,digitsZero,digitsOne,digitsTwo,digitsThree,digitsFour,digitsFive,digitsSix,digitsSeven,digitsEight,digitsNine,digitsMax} Digits_t;typedef enum enumDigitsIndexIDliketoUse { digitsIndexIDliketoUseNone = -1,digitsIndexIDliketoUseZero,digitsIndexIDliketoUSEOne,digitsIndexIDliketoUseTwo,digitsIndexIDliketoUseThree,digitsIndexIDliketoUseFour,digitsIndexIDliketoUseMax} DigitsIndexIDliketoUse_t;const Digits_t digitsIDliketoUse[digitsIndexIDliketoUseMax] = { digitsZero,digitsNine}@H_404_7@假设你想使用至少1个dIDigt,你可以这样做: @H_404_7@
Digits_t digitIDliketoUse = digitNone;...for (DigitsIndexIDliketoUse_t digitIndexIDliketoUse = digitsIndexIDliketoUseZero,digit = digitsIDliketoUse[digitIndexIDliketoUse]; digitsIndexIDliketoUse < digitsIndexIDliketoUseMax; ++ digitsIndexIDliketoUse){ <do something with digitIDliketoUse>}总结
以上是内存溢出为你收集整理的objective-c – 枚举自定义:是否可以创建subEnum?全部内容,希望文章能够帮你解决objective-c – 枚举自定义:是否可以创建subEnum?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)