I’m using C structs in objc and I’ve created a function that assembles the structure like the one from the Cocoa API. The things is that this structure is not like NSRect o NSPoint this structure packs objc objects soo I’m seeing a potential memory leak here. Do I need to provide a function to ‘release’ the structure?
I’am not creating a ISKNewsCategory class because there will be no behavior but Do you think this is a good approach or I should define the class even doe there will be no behavior?
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;
}
In general you would be much better off creating a simple container class. That way all the memory management is easy and you are able to use the object in the standard Cocoa container classes without mucking around wrapping the struct in an
NSValueor whatever.The only time it might be acceptable to use a struct in this way is if you have extremely performance-critical code where the object overhead might become a problem.