2009-08-09 13 views
13

sto solo creando un progetto con un modello di applicazione di utilità. Questo modello ha una perdita di memoria nativa quando si preme "info button" su capovolgere la vista.Modello di applicazione dell'utilità SDK Iphone ha perdite

Qualcuno sa come posso risolvere questa perdita ??? Ho appena creato un nuovo progetto da questo modello, Non aggiungo nuovi oggetti.

+0

Quale versione di SDK stai utilizzando? – Tim

+0

Uso SDK 3.0 con Xcode 3.2 su Snow Leopard –

risposta

13

Questa potrebbe essere una perdita o potrebbe non essere una perdita. Se dovessi aggiungere il backtrace dell'allocazione, sarebbe utile.

Più probabile che no, non è una perdita, ma alcune informazioni contabili che vengono nascoste da Dyld che perde/Strumenti perde traccia di.

Dato che sono 128 byte e immagino ci sia solo uno di loro, vorrei incoraggiarvi a presentare un bug tramite http://bugreport.apple.com e poi dimenticarlo per ora come, nel caso improbabile che sia davvero un perdita, sarà altrettanto improbabile che sia in grado di risolverlo dall'interno dell'applicazione.

+0

Grazie per la risposta! –

0

Nel modello dell'utilità SDK corrente non ci sono perdite. Come hai avuto l'impressione che ci sia una perdita nel modello? Assegna solo la memoria necessaria per le viste.

Una perdita è la memoria a cui non esistono puntatori e che non possono più essere liberati.

+0

Ciao, sto creando un nuovo progetto dal modello di Utility Application ed eseguirlo con Instruments, e questo mostra due perdite. Sono get: oggetto trapelato: Malloc 128 byte Dimensione: 128 bytes Biblioteca Responsabile: CoreGraphics Responsabile Telaio: open_handle_to_dylib_path –

5

Got la perdita facendo questo:

XCode 3.2--

File, Nuovo progetto, di navigazione basato su Application
Dategli un nome
costruirla
Run With Performance Tools - > Perdite

Quando gli strumenti si aprono, fare clic su Perdite (potrebbe essere necessario fare clic sulla piccola icona in basso t sembra quattro scatole all'interno di una scatola)

circa 7 secondi dopo l'esecuzione si dovrebbe vedere la perdita: - malloc 128 Bytes, qualche indirizzo, 128 Byte, CoreGraphics, open_handle_to_dylib_path

ho tracciato a questo codice nel AppDelegate:

//APPLE CODE 
- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  

    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 
} 

ho rotto il navigationController (ha fatto un alloc e stampa separato) e commentata l'addSubview: azione - non c'era nessuna perdita - e, ovviamente, lo schermo era vuoto.

Non è stato fino a quando non ho tentato addSubview che si è verificata la perdita. Dal momento che ci sono molti modi per aggiungere una sottoview, ho provato quelli. Ciascuno ha provocato la perdita o una schermata vuota.

+0

Stessa perdita nel sistema operativo 3.1. – inked

1

Leaks ha contrassegnato open_handle_to_dylib_path in CoreGraphics anche per me; c'è sicuramente qualcosa contrassegnato qui. Dato che è solo 256 byte al suo massimo, ho sparato un bug report ad Apple e l'ho chiamato fatto. È quindi possibile impostare una regola nella configurazione di Leaks per ignorare il report.

Come ha sottolineato Bbum, potrebbe esserci un serio voodoo al lavoro. Dubito seriamente che Apple lascerebbe passare il QA (framework leaky), soprattutto perché è così facile da riprodurre.

2

L'ho provato su un vero ipod touch. Nessuna perdita è stata segnalata. Probabilmente solo una cosa del simulatore ...

0

Ho avuto lo stesso problema, ma sono riuscito a capire perché è successo. E ho dato una breve informazione su questo problema in questo article

Potrebbe essere utile per voi.