Pass struct als ID möglich?

8

Ich möchte eine Funktion ausführen, die eine Struktur in einem separaten Thread erhält, aber nicht sicher ist, wie die Struktur richtig übergeben wird.

Mit diesem:

%Vor%

Wie Sie richtig anrufen:

%Vor%

Die Verwendung von &data funktioniert nicht.

    
georgij 12.04.2010, 14:54
quelle

3 Antworten

8

Während die Antwort von kennytm korrekt ist, da  ist ein einfacher Weg.

Verwenden Sie die + valueWithPointer: -Methode von NSValue, um den Zeiger in einem Objekt zu kapseln, um den Thread auszublenden. NSValue führt keine automatische Speicherverwaltung für den Zeiger durch - es ist wirklich ein undurchsichtiger Objektwrapper für Zeigerwerte.

    
bbum 12.04.2010, 20:14
quelle
8

Das object muss ein ObjC-Objekt sein. Eine Struktur ist nicht.

Sie können ein ObjC erstellen, das diese Informationen enthält:

%Vor%

oder codieren Sie die Struktur in einem NSData, vorausgesetzt, enthält keine Zeiger:

%Vor%     
kennytm 12.04.2010 15:08
quelle
0

Sie können die Struktur durch void * wie folgt übergeben. Getestet und es hat funktioniert.

%Vor%     
Val 14.06.2011 04:04
quelle

Tags und Links