Ich benutze C-Strukturen in Objc und ich habe eine Funktion erstellt, die die Struktur wie die aus der Cocoa API zusammenbaut. Die Dinge sind, dass diese Struktur nicht wie NSRect ist o NSPoint diese Struktur packt objc Objekte soo Ich sehe ein potenzielles Speicherleck hier. Muss ich eine Funktion bereitstellen, um die Struktur freizugeben?Verwenden von C-Strukturen, die ObjC-Objekte enthalten?
Ich habe keine ISKNewsCategory-Klasse erstellt, weil es kein Verhalten geben wird. Denken Sie, dass dies ein guter Ansatz ist oder sollte ich die Klasse definieren, obwohl es kein Verhalten geben wird?
typedef struct ISK_NewsCategory {
NSString *name;
NSString *code
} ISKNewsCategory;
NS_INLINE ISKNewsCategory ISKMakeNewsCategory(NSString *name, NSString *code) {
ISKNewsCategory category;
category.name = [name retain];
category.code = [code retain];
return category;
}
Um Ihre "einzige Zeit" zu erweitern: iterierende Strukturen ist 2-4x schneller als iterierende Klassen. Wenn Projekte größer werden, wird dies zu einem echten Problem (das aktuelle Projekt iteriert häufig viele Hunderttausende von Elementen, muss in Echtzeit ausgeführt werden). – Adam