referencyjny:IOS - performSelector: withObject: afterDelay: NIE DZIAŁA
https://stackoverflow.com/a/14741253/1749293
Podobnie jak w linku powyżej powiedziane, ale wydaje się, że nie wyjaśnia przyczyny.
W moim kodu dodaje zadziała:
dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector: @selector(helloWorld) withObject:nil afterDelay:0.5];
});
ale kiedy skomentować coś takiego, (a ja naprawdę pewien, że go uruchomić w głównym wątku !!) Kod nie praca:
// dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector: @selector(helloWorld) withObject:nil afterDelay: 0.5];
// });
Czy ktoś może mi powiedzieć, dlaczego? I "self", będzie nerver zwolnienia/zwalniania, i zachować go, aż wniosek się kończy.
"nie działa", to znaczy, że (bez awarii) to nie wskoczyć "helloworld" metody:
-(void) helloWorld {
NSLog(@"hello world"); // I set a break point here for debug , it wouldn't pause forever
}
myślę jest Run Loop przyczyną tego problemu. Tak jak powiedział this link, ale potrzebuję więcej szczegółów lub dokładniej wyjaśnię.
To dziwne, jeśli rzeczywiście jesteś w głównym wątku. Jakiś szczególny powód, dla którego nie używasz 'dispatch_after()'? –
co to jest BROKER.actors.event? – manujmv
W twoim pierwszym kodzie używasz 'self', podczas gdy w drugim używasz' BROKER.actors.event'. Czy na pewno odnoszą się do tego samego? – sunkehappy