2013-06-04 10 views
22

Sto debug il mio codice e cercare di capire la dimensione della vista utilizzando questo:errore: proprietà 'frame' non trovato in oggetto di tipo 'UIView *'

p view.frame.size.height 

ma mi sto questo errore:

errore: la proprietà 'frame' non trovato su un oggetto di tipo di errore 'UIView *' : 1 errori di analisi espressione

qualcuno di voi sa perché o come posso mettere a punto le dimensioni del mio punto di vista?

+0

Penso che non si possa usare la notazione di punti come quella nella console, puoi provarlo, penso che funzionerà: '[[[[auto] frame] size] height]' – limon

+0

Penso che tu possa usare NSLog invece - NSLog (@ "Frame Height:% f", view.frame.size.height); – John

risposta

46

Prova questo

p (CGRect)[view frame] 

alternativa per ottenere la cornice della vista:

po view 
+1

Viene visualizzato questo errore: errore: l'esecuzione è stata interrotta, motivo: EXC_BAD_ACCESS (codice = 2, indirizzo = 0x65). Il processo è stato restituito allo stato prima dell'esecuzione. – HelenaM

+1

Non capisco perché LLDB non riconosce la sintassi della notazione dei punti ... – tounaobun

+0

Ho ottenuto EXC_BAD_ACCESS perché stavo chiamando il frame sull'oggetto sbagliato. Invece di: p (CGRect) [frame myviewcontroller] dovrebbe essere p (CGRect) [[myviewcontroller view] frame] – Avner

-2

Ho avuto lo stesso problema e ho risolto. La tua classe potrebbe essere ereditata da "UIViewController". Deve essere ereditato da "UIView" in modo da creare un oggetto frame in esso.

3

dovrebbe avere staffa esterna nella prima risposta, in questo modo:

p ((CGRect)[cell frame]) 

uscita:

(CGRect) $5 = origin=(x=0, y=0) size=(width=320, height=44) 
41

Se odiate typecasting ogni volta, si può provare questo:

(lldb) expr @import UIKit 
(lldb) po self.view.bounds 

Dato che Xcode7.2 è ora disponibile, penso che dovremmo aggiornare la risposta.
trovo la risposta qui, Why can't LLDB print view.bounds?

0

aggiungere un file PCH, aggiungere queste righe di codice al file:

#ifndef PrefixHeader_pch 
#define PrefixHeader_pch 

#ifdef __OBJC__ 
#import <UIKit/UIKit.h> 
#endif 

#endif /* PrefixHeader_pch */  

Avanti, collegare il file PCH al progetto:

enter image description here

Esegui nuovamente l'app, quindi dovresti essere in grado di utilizzare la notazione a punti nella console lldb:

(lldb) po self.view.bounds  

Per informazioni su come aggiungere un file PCH, vedere la risposta qui PCH File in Xcode 6

2

Prova questo,

po view.layer.frame.size.height 
-1

sembra che non possiamo usare la notazione del punto nella console, provare a utilizzare ottenere metodo.