2016-08-16 3 views
0

Die App stürzt ab bei Erreichen dieser CodeEXC_BAD_ACCESS App Crash Objective-C-Code = 1

- (void)setUniformsForProgramAtIndex:(NSUInteger)programIndex { 
    [uniformStateRestorationBlocks enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ 
     dispatch_block_t currentBlock = obj; 
     // error here is Thread:20 EXC_BAD_ACCESS (code =1, address= 0x579fcea0) 
     currentBlock(); 
    }]; 
} 

viele Dinge versucht so, aber immer noch nicht herausfinden können, was der Fehler bitte mir helfen, dieses Problem zu lösen ...

+0

'obj' - Sind Sie sicher, dass Sie einen Block bekommen? – Igor

+0

zeigen, wie Sie 'uniformStateRestorationBlocks' deklarieren – Igor

+0

currentBlock = obj; @Igor –

Antwort

1

Überprüfen Sie den Inhalt des Wörterbuchs. Sieht aus wie obj veröffentlicht wird, was nicht passieren sollte, da es beibehalten wird, wenn Sie es hinzufügen. Setzen Sie einen Haltepunkt und prüfen Sie, welchen Wert Sie in obj erhalten.

0

Sie müssen sicherstellen, dass die Werte in uniformStateRestora‌​‌​tionBlocks ist wirklich ein Block.

1

Vielleicht haben die uniformStateRestorationBlocks einen Wert, der kein gültiges dispatch_block_t Objekt ist oder ein Objekt an anderer Stelle freigegeben wurde?

Im Allgemeinen tritt der Absturz EXC_BAD_ACCESS durch Zugriff auf einen freigegebenen oder ungültigen Zeiger auf.

Verwandte Themen