Вызов функции задерживается в target-c без 2-го потока - PullRequest
0 голосов
/ 04 апреля 2011

Я хочу вызвать функцию, которая отправляет предложение с задержкой, чтобы смоделировать поток данных. Данные хранятся в текстовом файле. Каждая строка текстового файла содержит одно предложение. Я пытался получить отложенное поведение при вызове ранее с помощью sleep (x), но это остановило все приложение. Должен ли я использовать отдельный поток или возможно ли заставить его работать с NSTimer или sth. например [self executeSelector: @selector (parseSentence :) withObject: s afterDelay: 2]?

- (void) simulateStream
{
    NSArray *sentences;</p>

<code>NSString *path = [[NSBundle mainBundle] pathForResource:@"Sentence_File" ofType:@"txt"];
NSString *st;

if (path) 
{
st=[NSString stringWithContentsOfFile:pfad 
    encoding:NSUTF8StringEncoding 
    error:nil];

sentences=[[st substringFromIndex:[st rangeOfString:@"$"].location+1]
componentsSeparatedByString:@"$"];  
}

for(int i=0; i<[sentences count]; i++) 
{
    //----CALL THIS WITH A DELAY OF 2 SECONDS----
[sentenceHandler parseSentence:[sentences objectAtIndex:i]]; 

}}
</code>

Спасибо за помощь. Привет

1 Ответ

0 голосов
/ 04 апреля 2011

Вы можете увеличить интервал задержки при каждом проходе:

NSTimeInterval delay = 2;
for (NSString* sentence in sentences) {
   [sentenceHandler performSelector:@selector(parseSentence:)
                         withObject:sentence
                         afterDelay:delay];
   delay += 2;
}
...