osx - How To Compare Integer to Objective-C enum -



osx - How To Compare Integer to Objective-C enum -

- (void)updatecheckboxes { nsarray *availablefuncunits = _scanner.availablefunctionalunittypes; for(int = 0; < [availablefuncunits count]; i++) { } }

if set breakpoint within loop, elements of nsarray * 'availablefuncunits' (__nscfnumber *)(int)0 , (__nscfnumber *)(long)3.

the array supposed contain elements of next :

enum { icscannerfunctionalunittypeflatbed = 0, icscannerfunctionalunittypepositivetransparency = 1, icscannerfunctionalunittypenegativetransparency = 2, icscannerfunctionalunittypedocumentfeeder = 3 }; typedef nsuinteger icscannerfunctionalunittype;

shouldn't able following?

if([availablefuncunits objectatindex:i] == icscannerfunctionalunittype.icscannerfunctionalunittypedocumentfeeder) {}

but gives me error saying 'expected identifier or '('.

how can perform comparing correctly? lot help!

there 2 problems see: 1) array availablefuncunits contains nsnumber objects. cant straight compare them primitive types (nsuinteger).

so if should this:

icscannerfunctionalunittype type = [availablefuncunits[i] integervalue] if(type == icscannerfunctionalunittypedocumentfeeder){}

in snippet comparing pointer, not object.

2) error seeing because proper way utilize enums is:

i = icscannerfunctionalunittypedocumentfeeder

objective-c osx cocoa enums

Comments

Popular posts from this blog

java Multi query from Mysql using netbeans -

c# - DotNetZip fails with "stream does not support seek operations" -

c++ - StartServiceCtrlDispatcher don't can access 1063 error -