РЕДАКТИРАНЕ: Проблемът беше с твърдението, както хората посочиха по-долу. Благодаря за помощта!
Имам набор от enum, който се опитвам да приравня, но по някаква причина не работи. Декларира се така:
typedef NS_ENUM(NSUInteger, ExUnitTypes) {
kuNilWorkUnit,
kuDistanceInMeters,
//end
kuUndefined
};
И го използвам тук:
+(NSString*) ExUnitDescription: (ExUnitTypes) exUnit
{
if (exUnit == kuNilWorkUnit)
{
assert("error with units");
}
///.... more stuff
}
Xcode не задейства моето твърдение. РЕДАКТИРАНЕ: твърдението е само за тестване. Използвал съм и NSLog. Условното условие не се оценява като true, въпреки че стойността очевидно е kuNilWorkUnit.
Някой има ли предложения или идеи какво правя погрешно?
false
или0
и макросаassert()
. Както и да е, един низов литерал никога няма да се разпадне вNULL
указател, така че твърдениетоassert("arbitrary string literal here");
никога няма да се активира. Сега ще трябва да прочетете документацията наassert()
, за да разберете какво не е наред и как да го разрешите. Допълнителни препоръчителни неща за четене (внимателно):man 3 abort
,man 3 exit
и добър урок за изразаif
в C. - person   schedule 06.12.2013"error with units"
, което не дава оценка на false. - person   schedule 06.12.2013