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

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -