Я использую UICsutomSwitch для своего приложения. Когда я пытаюсь его создать, я получаю исключение типа
Завершение работы приложения из-за необработанного исключения «NSRangeException», причина: «* - [NSArray objectAtIndex:]: индекс 2 вне границ для пустого массива»
Мой код выглядит следующим образом,
UICustomSwitch.h
#import <Foundation/Foundation.h>
@interface UICustomSwitch : UISwitch
{
}
-(void)setLeftLabelText:(NSString *)labelText;
-(void)setRightLabelText:(NSString *)labelText;
@end
UICustomSwich.m
#import "UICustomSwitch.h"
@implementation UICustomSwitch
-(UIView *)slider
{
return [[self subviews ] lastObject];
}
-(UIView *)textHolder
{
return [[[self slider] subviews]objectAtIndex:2];
}
-(UILabel *)leftLabel
{
return [[[self textHolder] subviews]objectAtIndex:0];
}
-(UILabel *)rightLabel
{
return [[[self textHolder] subviews]objectAtIndex:1];
}
-(void)setLeftLabelText:(NSString *)labelText;
{
[[self leftLabel] setText:labelText];
}
-(void)setRightLabelText:(NSString *)labelText
{
[[self rightLabel]setText:labelText];
}
@end
Просмотр контроллера:
UICustomSwitch* switchView=[[[UICustomSwitch alloc]initWithFrame:CGRectMake(200,5,90,30)]autorelease];
[switchView setLeftLabelText:@"F"];
[switchView setRightLabelText:@"M"];
[switchView addTarget:self action:@selector(genderAction:) forControlEvents:UIControlEventValueChanged];
[elementView addSubview:switchView];
Я получаю исключение при "return [[[self slider] subviews] objectAtIndex: 2];" вызов. Я не знаю, в чём дело, не могли бы вы, ребята, предложить мне это.
Заранее спасибо,
Sekhar.