Kullanım " için tamam mı;klasik" malloc()/ücretsiz (Objective-C/iPhone uygulamaları?
Bir süre için iPhone geliştirme ile oynamak oldum, ve bir bit olunca garip geliyor olsa da"" . sert çekirdekli NET geliştirici, alışınca o kadar da kötü değil.
Her kitapta Objective-C, okudum sadece bellek yönetimi/release (referans sayma) korumak hakkında konuşuluyor. Eski toprak bir C/C geliştiricisi olarak, ayrılırken garip görünüyor "normal" bir şekilde kullanarak malloc() ve free() sadece bazı dipnotlarda belirtilir.
Biliyorum bu malloc() ve free() Ama eğer yaygın bir uygulamadır merak ediyorum ya da değil, Objective-C,. çalışma Eğer 100 dizisi ayırmak istiyorum, tüm sonra, bu bunu yapmak için en etkili yol gibi görünüyor:
int *array = malloc(sizeof(int) * 100);
memset(array,0,sizeof(int) * 100);
// use the array
free(array);
Bu gerçekten en iyi yoldur, ya da düz C bellek yönetimi kaçınmak gerekir?
CEVAP
Benzer görevler için kullanmayı çok seviyorum ki Objective-C sarıcı etrafında raw bellek: NSMutableData
. Dizinin kolayca büyüyebilir artı/release mülkiyeti muhafaza (realloc kendiniz yapmak zorunda kalmadan) vermenin yararı vardır.
Sizin kod gibi görünecektir:
NSMutableData* data = [NSMutableData dataWithLength:sizeof(int) * 100];
int* array = [data mutableBytes];
// memory is already zeroed
// use the array
// decide later that we need more space:
[data setLength:sizeof(int) * 200];
array = [data mutableBytes]; // re-fetch pointer in case memory needed to be copied
// no need to free
// (it's done when the autoreleased object is deallocated)
Kullanım " için;UPDATE CASCADE&quo...
Gerçek dünya kullanım Team Foundation ...
android studio "gradle sarıcı&quo...
(Somut) Python metaclasses için kullan...
Neden't JavaScript çoklu kullanım...