が、私はこのようなコードを持っている: "私は変換するにはどうすればよいキャスト "のconstのvoid *" に "のconstのchar *"
- (void)_loadData:(const char *)data;
:
NSData *data = [NSData dataWithContentsOfURL:objURL];
const void *buffer = [data bytes];
[self _loadData:buffer];
[data release];
は "_loadDataは、" 機能は次のように引数を取りますconst void "をObjective-Cの" const char "に変更しますか?
[データリリース];ラインは不要です。ガベージコレクションされていない環境では、アプリケーションがクラッシュする可能性があり、Cocoaのメモリ管理を完全に理解していないことがわかります。あなたは明示的にalloc、copy、またはmutableCopy(私が今考えることができない他のもの)を明示した場合にのみリリースします。 [NSData dataWithContentsOfURL:]から返されたオブジェクトは自動的に解放されるか、ガベージコレクトされます。 – dreamlax
ガーベジコレクションがないiPhoneでも? –
ガーベジコレクションされていない環境では、オブジェクトは自動解放プールに追加され、次のイベントループまたはプール自体の割り当てが解除されたときに割り当て解除される可能性があります。いずれにしても、返されたオブジェクトを「所有していない」ので、解放することはあなたのものではありません。あなたは+ alloc、-copy、または-mutableCopy(そしておそらく他のもの)のどちらかを使って明示的に割り当てるオブジェクトだけを所有します。 – dreamlax