Я пишу программу для синтаксического анализа XML. Процесс синтаксического анализа работает хорошо, но мне нужно повторить функцию через каждые 25 секунд. Я пробовал NSTimer
, но он не работает для меня. Когда он вызывается, он показывает ошибку SIGABRT. Функция, которая мне нужно вызвать через каждые 25 секунд, приводится ниже:Как реализовать NSTimer в параметризованной функции?
-(id)loadXMLByURL:(NSString *)filePath :(NSTimer *) timer
{
categories =[[NSMutableArray alloc]init];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
parser =[[NSXMLParser alloc]initWithData:myData];
parser.delegate = self;
[parser parse];
return self;
}
И метод, который я использовал для установки таймера приведена ниже
- (void)viewDidLoad
{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"cd_catalog" ofType:@"xml"];
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 25.0 target: self
selector: @selector(loadXMLByURL:filePath:) userInfo: nil repeats: YES];
xmlParser=[[XMLParser alloc] loadXMLByURL:filePath:myTimer];
[super viewDidLoad];
}
Пожалуйста, скажите мне, что случилось с моим код, а также скажите, есть ли какой-либо другой метод, доступный для процесса с примером.
Заранее спасибо.
Почему у вас есть 'return self?' В вашем методе? – tolgamorf
Почему вы хотите разобрать один и тот же файл каждые 25 секунд? Почему бы не разобрать его один раз и сохранить данные? – rmaddy
@rmaddy Я считаю, что файл XML будет предоставлен из удаленного источника, и он будет слушать изменения в файле или что-то подобное. – tolgamorf