Итак, у меня есть, но это не будет работать:настройка новых свойств в категории интерфейсе/реализации
@interface UILabel (touches)
@property (nonatomic) BOOL isMethodStep;
@end
@implementation UILabel (touches)
-(BOOL)isMethodStep {
return self.isMethodStep;
}
-(void)setIsMethodStep:(BOOL)boolean {
self.isMethodStep = boolean;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if(self.isMethodStep){
// set all labels to normal font:
UIFont *toSet = (self.font == [UIFont fontWithName:@"Helvetica" size:16]) ? [UIFont fontWithName:@"Helvetica-Bold" size:16] : [UIFont fontWithName:@"Helvetica" size:16];
id superView = self.superview;
for(id theView in [(UIView *)superView subviews])
if([theView isKindOfClass:[UILabel class]])
[(UILabel *)theView setFont:[UIFont fontWithName:@"Helvetica" size:16]];
self.font = toSet;
}
}
@end
Если я вынимаю методы получения и установок, то он не работает это говорит мне, что мне нужно для создания некоторых методов getter и setter (или использовать @synthesize - но включение @synthesize в @implementation также вызывает ошибку). Но с методами getter и setter я получаю EXC_BAD_ACCESS и сбой. Есть идеи? Благодаря
Том
Этот парень «Dave Делонг» опубликовал ответ, что вы должны проверить ... это, наверное, «правильный» способ сделать то, что вы хотите ... :) [вот ссылка ...] (HTTP : //stackoverflow.com/questions/4146183/instance-variables-for-objective-c-categories) –
Ассоциативная ссылка - это решение ... найти хороший учебник здесь http://www.techpaa.com/2012/04/adding -properties-to-categories-and.html – ShivaPrasad
Кроме того, ваш 'isMethodStep' getter является бесконечно рекурсивной функцией. Вот почему вы получаете краху EXC_BAD_ACCESS. 'self.isMethodStep' эквивалентен' [self isMethodStep] '. –