Impostazione dei valori delle proprietà non attaccanti / ViewDidload Veni chiamato più volte in Xcode 4.3

StackOverflow https://stackoverflow.com/questions/9353831

Domanda

Quindi questo è strano.

Ho una proprietà:

@property (weak, nonatomic) Something *something; // .h
@synthesize something=_something                  // .m

Per qualche motivo, l'impostazione di quella proprietà non mantiene _something impostare.

Ho anche scritto un setter:

- (void)setSomething:(Something *)something {
    _something = something;
}

Il passato something è un'istanza valida dell'oggetto. Tuttavia, dopo aver attraversato la linea _something = something, _something è zero e something è ancora un oggetto valido.

Questo mi sta facendo impazzire, perché tutto mi sembra giusto. Ho scritto questo stesso genere di cose mille volte. L'unica cosa che è nuova è che questo è in Xcode 4.3.

Qualsiasi aiuto sarebbe apprezzato. Grazie!

ETA: Quindi, forse questo è un suggerimento? ViewDidload viene chiamato un intero carico di volte, in lotti di 4. Sto usando storyboard, quindi la vista viene automaticamente impostata correttamente. Forse il controller di visualizzazione non viene caricato o inizializzato correttamente o qualcosa del genere? Ho il set di lezioni e tutto sembra che dovrebbe funzionare, ma non lo è.

È stato utile?

Soluzione

OK, l'ho capito. Non sono sicuro da dove provenga questo metodo, ma questo era nel codice di qualcosa di.Controler:

- (void)loadView {
    // If you create your views manually, you MUST override this method and use it to create your views.
    // If you use Interface Builder to create your views, then you must NOT override this method.
}

Poiché sto usando storyboard, la presenza stessa di questo metodo ha causato tutti i tipi di problemi. Sono piuttosto imbarazzato, perché probabilmente l'ho copiato e incollato da qualche parte senza pensarci.

Comunque, spero che questo aiuti qualcuno. Ha ucciso solo la maggior parte della mia giornata.

Altri suggerimenti

Forse la cosa che stai assegnando a quella proprietà non è indicata da nessun'altra parte. Quindi dopo l'incarico l'unico puntatore a quell'oggetto è la tua proprietà ed è settimana Quindi l'oggetto viene gettato fuori dal heap

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top