В приведенном ниже коде я пытаюсь определить перечисление и передать параметр его типа в метод, упомянутый ниже. Также я создал свойство перечисления того же типа
@property (readonly, nonatomic) enum adherance adheranceType;
, чтобы разработчик мог получить доступ к значениям перечисления и передать его методу. Однако я получаю сообщение об ошибке:
expression is not an integer constant expression.
Пожалуйста, дайте мне знать, как это исправить
.m
@interface PlaceView ()
@end
@implementation PlaceView
@synthesize adheranceType;
-(float)placeViews:(NSArray *)uiviews WithAdereanceType:(enum adherance) atype {
NSInteger iter = 0;
float totalHeight = 0.0f;
for (UIView *v in uiviews) {
if (!v.hidden) {
if (++iter == 1) {
totalHeight += totalHeight;
} else {
switch (atype) {
case adheranceType == atype:
break;
}
}
}
}
return 2.0f;
}
.h
enum adherance {
FIT_SEAMLESS,
LOOSE_WITH_GAP,
TIGHT_OVERLAP
};
@interface PlaceView : NSObject { }
@property (readonly, nonatomic) enum adherance adheranceType;
- (float) placeViews:(NSArray *)uiviews WithAdereanceType: (enum adherance) atype;
@end