UIActivityIndicator n'apparaà®t pas

Bonjour,



voila ou j'en suis, dans mon viewController, j'ai deux méthodes, -(void)sendRefreshDisplay et -(void)pushView:(NSIndexPath *)indexPath, la différence entre ces deux méthodes, c'est que pushView est appelé directement par mon viewControlle, pour me permettre de push vers une nouvelle vue,(riens de bien méchant), quand au deuxième, sendRefreshDisplay:, il est appelé après avoir sélectionné un bouton d'un UIActionSheet, actionSheet appelé dans le viewController, sauf que une fois le bouton appelé, je passe par une classe intermédiaire, qui va réaliser tout un long traitement et après appeler sendRefreshDisplay via un delegate implémenter par mon viewController.



Le constat est que pour ma méthode -(void)pushView:(NSIndexPath *)indexPath tout se passe bien, mon code s'exécute pendant que mon indcatorActivity tourne et s'arrête à  la fin de mon code, parfait! Sauf que pour -(void)sendRefreshDisplay, mon code s'exécute, sans problème, mais mon indicatorActivity n'apparait pas et le plus étonnant c'est que à  l'origine de l'exécution de cette méthode, l'actionSheet, une fois le bouton sélectionné, la vue d'actionSheet ne disparait seulement après être arrivé à  la ligne suivante:
[color=#000000]dispatch_async[/color][color=#000000][color=#666600]([/color][/color][color=#000000]dispatch_get_global_queue[/color][color=#000000][color=#666600]([/color][/color][color=#73492C][color=#000000]DISPATCH_QUEUE_PRIORITY_DEFAULT[/color][/color][color=#000000][color=#666600],[/color][/color][color=#3D01D9][color=#006666]0[/color][/color][color=#000000][color=#666600]),[/color][color=#000000] [/color][color=#666600]^{[/color][/color]<br />


Voila en attendant je suis dans l'impasse:
- ([color=#b41ca4]void[/color]) sendRefreshDisplay<br />
{<br />
[color=#401082][color=#000000]	[[/color][color=#578187]indicator[/color][color=#000000] [/color]startAnimating[color=#000000]];[/color][/color]<br />
[color=#401082][color=#000000]	[/color]dispatch_async[color=#000000]([/color]dispatch_get_global_queue[color=#000000]([/color][color=#73492c]DISPATCH_QUEUE_PRIORITY_DEFAULT[/color][color=#000000],[/color][color=#3d01d9]0[/color][color=#000000]), ^{[/color][/color]<br />
[color=#578187][color=#000000]		[/color]ApplicationAlert[color=#000000] * AppAlert=[[[/color]ApplicationAlert[color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color][color=#38595d]init[/color][color=#000000]];[/color][/color]<br />
		[color=#7134aa]NSArray[/color] * tabParamGetNoticesByApplication=[[color=#7134aa]NSArray[/color] [color=#401082]arrayWithObjects[/color]:[[color=#7134aa]NSNumber[/color] [color=#401082]numberWithInt[/color]:[color=#3d01d9]11[/color]], [[color=#578187]AuthTest[/color] [color=#38595d]token[/color]], [color=#b41ca4]nil[/color]];<br />
		[color=#b41ca4]BOOL[/color] finish=[color=#b41ca4]NO[/color];<br />
		[color=#b41ca4]while[/color](finish==[color=#b41ca4]NO[/color])<br />
		{<br />
			[color=#b41ca4]if[/color]([[AppAlert [color=#38595d]getNoticesByApplication[/color]:tabParamGetNoticesByApplication] [color=#401082]count[/color]]==[color=#3d01d9]0[/color])<br />
			{<br />
				finish=[color=#b41ca4]YES[/color];<br />
			}[color=#b41ca4]else[/color] {<br />
[color=#401082][color=#000000]				[/color][color=#7134aa]NSDate[/color][color=#000000] * to = [[[/color][color=#7134aa]NSDate[/color][color=#000000] [/color]alloc[color=#000000]] [/color]initWithTimeIntervalSinceNow[color=#000000]:[/color][color=#3d01d9]1.5[/color][color=#000000]];[/color][/color]<br />
				[[color=#7134aa]NSThread[/color] [color=#401082]sleepUntilDate[/color]:to];<br />
			}<br />
		}<br />
[color=#73492c][color=#000000]		[/color][color=#401082]dispatch_sync[/color][color=#000000]([/color]dispatch_get_main_queue[color=#000000](), ^{[/color][/color]<br />
[color=#38595d][color=#000000]			[/color][color=#578187]AppViewController[/color][color=#000000] * lGridViewController = [[[/color][color=#578187]AppViewController[/color][color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color]initWithGridLayoutStyle[color=#000000]:[/color]NRGridViewLayoutStyleVertical[color=#000000]];[/color][/color]<br />
[color=#578187][color=#000000]			[[/color]FmContextViewController[color=#000000] [/color][color=#38595d]removeSelectedFile[/color][color=#000000]];[/color][/color]<br />
			[lGridViewController [color=#38595d]setFmContext[/color]:[color=#578187]FmContextViewController[/color]];  <br />
[color=#401082][color=#000000]			[[/color][color=#578187]tabBar[/color][color=#000000] [/color]removeFromSuperview[color=#000000]];[/color][/color]<br />
			[lGridViewController [color=#38595d]setPath[/color]:[[color=#b41ca4]self[/color] [color=#38595d]path[/color]]];<br />
			[lGridViewController [color=#38595d]initOrientationContext[/color]:[color=#b41ca4]self[/color]-&gt;[color=#578187]OrientationContext[/color]];<br />
			[lGridViewController [color=#38595d]initTabPreviousCurrentPath[/color]];<br />
[color=#38595d][color=#000000]			[lGridViewController [/color]setTabPreviousCurrentPath[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]tabPreviousCurrentPath[color=#000000]]];[/color][/color]<br />
			[lGridViewController [color=#38595d]initArrayMethodeUser[/color]];<br />
			[lGridViewController [color=#38595d]setArrayMethodeUser[/color]:[[color=#b41ca4]self[/color] [color=#38595d]arrayMethodeUser[/color]]];<br />
[color=#38595d][color=#000000]			[lGridViewController [/color]initListeNamePathFileManagerSelected[color=#000000]];[/color][/color]<br />
[color=#38595d][color=#000000]			[lGridViewController [/color]setListeNamePathFileManagerSelected[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]getListeNamePathFileManagerSelected[color=#000000]]];[/color][/color]<br />
			[lGridViewController [color=#38595d]initCut[/color]:[[color=#b41ca4]self[/color] [color=#38595d]cutOrNotCut[/color]]];<br />
			[[color=#578187]indicator[/color] [color=#401082]stopAnimating[/color]];<br />
			[[color=#b41ca4]self[/color] [color=#38595d]pushWithContext[/color]:lGridViewController];<br />
		});<br />
	});<br />
}<br />
- ([color=#b41ca4]void[/color]) pushView:([color=#7134aa]NSIndexPath[/color] *)indexPath<br />
{<br />
	[color=#b41ca4]if[/color]([[[[[color=#578187]browseFeature[/color] [color=#38595d]getListFiles[/color]] [color=#401082]objectAtIndex[/color]:indexPath.[color=#7134aa]row[/color]] [color=#38595d]getType[/color]] [color=#401082]isEqualToString[/color]:[color=#c72c25]@&quot;directory&quot;[/color]])<br />
	{<br />
[color=#401082][color=#000000]		[[/color][color=#578187]indicator[/color][color=#000000] [/color]startAnimating[color=#000000]];[/color][/color]<br />
<br />
[color=#401082][color=#000000]		[/color]dispatch_async[color=#000000]([/color]dispatch_get_global_queue[color=#000000]([/color][color=#73492c]DISPATCH_QUEUE_PRIORITY_DEFAULT[/color][color=#000000],[/color][color=#3d01d9]0[/color][color=#000000]), ^{[/color][/color]<br />
			[color=#7134aa]NSString[/color] * nextPath=[[[[color=#578187]browseFeature[/color] [color=#38595d]getListFiles[/color]] [color=#401082]objectAtIndex[/color]:indexPath.[color=#7134aa]row[/color]] [color=#38595d]getNom[/color]];<br />
[color=#38595d][color=#000000]			[/color][color=#578187]AppViewController[/color][color=#000000] * gridViewController = [[[/color][color=#578187]AppViewController[/color][color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color]initWithGridLayoutStyle[color=#000000]:[/color]NRGridViewLayoutStyleVertical[color=#000000]];[/color][/color]<br />
			[gridViewController [color=#38595d]setFmContext[/color]:[color=#578187]FmContextViewController[/color]];<br />
		[color=#b41ca4]if[/color]([[[color=#b41ca4]self[/color] [color=#38595d]path[/color]] [color=#401082]isEqualToString[/color]:[color=#c72c25]@&quot;/&quot;[/color]])<br />
		{<br />
[color=#38595d][color=#000000]			[[/color][color=#b41ca4]self[/color][color=#000000] [/color]initTabPreviousCurrentPath[color=#000000]]; [/color][/color]<br />
[color=#38595d][color=#000000]			[[/color][color=#b41ca4]self[/color][color=#000000] [/color]setObjectTabPreviousCurrentPath[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]path[color=#000000]]];[/color][/color]<br />
			[color=#7134aa]NSString[/color] * addNextPath=[[color=#7134aa]NSString[/color] [color=#401082]stringWithFormat[/color]:[color=#c72c25]@&quot;/%@&quot;[/color],nextPath];<br />
			[gridViewController [color=#38595d]setPath[/color]:addNextPath];<br />
		}<br />
		[color=#b41ca4]else[/color]<br />
		{<br />
[color=#38595d][color=#000000]			[[/color][color=#b41ca4]self[/color][color=#000000] [/color]setObjectTabPreviousCurrentPath[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]path[color=#000000]]];[/color][/color]<br />
			[color=#7134aa]NSString[/color] * addNextPath=[[color=#7134aa]NSString[/color] [color=#401082]stringWithFormat[/color]:[color=#c72c25]@&quot;%@/%@&quot;[/color],[[color=#b41ca4]self[/color] [color=#38595d]path[/color]],nextPath];<br />
			[gridViewController [color=#38595d]setPath[/color]:addNextPath];<br />
		}<br />
[color=#401082][color=#000000]		[[/color][color=#578187]tabBar[/color][color=#000000] [/color]removeFromSuperview[color=#000000]];[/color][/color]<br />
		[gridViewController [color=#38595d]initOrientationContext[/color]:[color=#b41ca4]self[/color]-&gt;[color=#578187]OrientationContext[/color]];<br />
		[gridViewController [color=#38595d]initTabPreviousCurrentPath[/color]];<br />
[color=#38595d][color=#000000]		[gridViewController [/color]setTabPreviousCurrentPath[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]tabPreviousCurrentPath[color=#000000]]];[/color][/color]<br />
		[gridViewController [color=#38595d]initArrayMethodeUser[/color]];<br />
[color=#38595d][color=#000000]		[gridViewController [/color]setArrayMethodeUser[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]arrayMethodeUser[color=#000000]]];[/color][/color]<br />
[color=#38595d][color=#000000]		[gridViewController [/color]initListeNamePathFileManagerSelected[color=#000000]];[/color][/color]<br />
[color=#38595d][color=#000000]		[gridViewController [/color]setListeNamePathFileManagerSelected[color=#000000]:[[/color][color=#b41ca4]self[/color][color=#000000] [/color]getListeNamePathFileManagerSelected[color=#000000]]];[/color][/color]<br />
		[gridViewController [color=#38595d]initCut[/color]:[[color=#b41ca4]self[/color] [color=#38595d]cutOrNotCut[/color]]];<br />
<br />
[color=#73492c][color=#000000]		[/color][color=#401082]dispatch_sync[/color][color=#000000]([/color]dispatch_get_main_queue[color=#000000](), ^{[/color][/color]<br />
[color=#401082][color=#000000]		[[/color][color=#578187]indicator[/color][color=#000000] [/color]stopAnimating[color=#000000]];[/color][/color]<br />
		[[color=#b41ca4]self[/color] [color=#38595d]pushWithContext[/color]:gridViewController];  <br />
		});<br />
		});<br />
	}<br />
}

Réponses

  • JulienJulien Membre
    juillet 2012 modifié #2
    Bonjour,



    Dans quel thread est appelé sendRefreshDisplay ? Pourrait tu executer le code suivant (au tout début de : sendRefreshDisplay)
    NSLog(@&quot;%@&quot;, indicator);<br />
    NSLog(@&quot;%@&quot;, [NSThread isMainThread] ? @&quot;Main Thread&quot; : @&quot;BGThread&quot;);
    






    J.
Connectez-vous ou Inscrivez-vous pour répondre.