Ben kimlik doğrulaması için kullanıcı şifresini depolamak için Apple'ın örnek koddan KeyChainItemWrapper kullanıyorum ama şifreyi ayarlamak için çağırdığınızda:Bellek Sızıntısı KeychainItemWrapper
[keychain setObject:passwordField.text forKey:(id)kSecValueData];
Bu gömleğimi tüm bellek sızıntıları geçiyor . bu KeyChainItemWrapper.m içinde 274 satıra geri izleri görünüşte sorun:
if (SecItemCopyMatching((CFDictionaryRef)genericPasswordQuery, (CFTypeRef *)&attributes) == noErr)
{
nasıl düzeltebilirim ediyorum ve gelecekte Apple örnek kod ile çalışırken daha dikkatli olmalıdır?
Not: Daha fazla kod yayınlayabilirim, ancak bu satırları Aletleri kullanarak daralttım ve örnek kod tam olarak herhangi bir geliştiriciye açık.
Tam olarak sorunun nerede olduğuydu. Sadece [özellikler sürümünü] ekle; bağlanan işlev fişlerinin sonuna. Bu hata, önerdiğiniz gibi Apple'a bildirildi. – Serendipity
Wow - örnek kodun devam ettiği sürece, KeychainItemWrapper'ın en kötüsü olduğunu düşünüyorum! autoreleases her yerde, yukarıda da dahil olmak üzere en az 2 bilinen bellek sızıntısı, ve başka bir keychainItemData başlatılıyor ... – npellow
npellow, autoreleases ile ilgili sorun nedir? Sadece bir noktada serbest bırakıyorlar.Apple bunları sık sık kullanır. Aslında, biz kendi programımızın nasıl yapılacağını istemek için –