2011-11-22 10 views
29

C'era un'impostazione MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS su Xcode 3 ma non riesco a trovarla in Xcode 4.2 e provare a impostarla come un'impostazione di build definita dall'utente non ha alcun effetto.Come disabilitare nessun avviso di relazione inversa per CoreData in Xcode 4.2?

So perché dovrei usare la relazione inversa ma semplicemente non lo voglio per vari motivi.

+0

So che dici di sapere perché dovresti usare una relazione inversa ma sto solo controllando. Sai che semplifica per CoreData se c'è una relazione inversa e che non averla può ridurre le prestazioni, ad es. quando la cascata cancella? Perché è consigliabile avere sempre una relazione inversa, anche se non la usi mai. Ovviamente potresti avere un caso d'uso speciale in cui l'inverso è in realtà un male per te, nel qual caso una relazione unidirezionale può essere l'opzione migliore. –

+0

@David Rönnqvist Ho un EntityA che ha relazioni: allItems e mostRecentlyUsed. allItems è un to-many e mostRecentlyUsed è to-one ed entrambi puntano a EntityItem. Non riesco a vedere alcun motivo per cui EntityItem abbia due relazioni inverse che puntano entrambe alla stessa EntityA. –

+0

Sono d'accordo sul fatto che non dovremmo "avere" relazioni inverse. Voglio dire, da quando è obbligatorio per ogni relazione "getChild" avere un corrispondente "getParent" in un programma orientato agli oggetti? E btw, hai trovato ancora una soluzione- Lo voglio anch'io – Rhubarb

risposta

2

L'impostazione è ancora presente in Xcode 4. Almeno è per me quando creo un nuovo progetto in Xcode 4.2 che utilizza Core Data. L'impostazione MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS si trova nell'insieme Avvisi del compilatore Versione del modello di dati (MOMC), che si trova nella parte inferiore dell'elenco delle impostazioni di generazione.

+0

Non riesco a trovare nulla come la raccolta di avvisi di Data Model Version Compiler (MOMC), la ricerca 'momc' nelle impostazioni di generazione non mi dà nulla. È perché non ho creato il mio progetto utilizzando il modello Core Data? Ho usato il modello cocos2d per creare il progetto. –

+0

Non ho usato cocos2d, ma il fatto che non si sia utilizzato il modello di progetto Dati di base potrebbe essere la causa del mancato possesso di una raccolta di avvisi del compilatore del modello Data Model. Un'altra cosa da controllare è i pulsanti Base e Tutti sopra l'elenco delle impostazioni di compilazione. Assicurati di fare clic sul pulsante Tutto. –

+1

Ho fatto clic sul pulsante Tutto e ancora non riesco a trovare e creo un nuovo progetto che utilizza il modello Dati di base ed è lì. Immagino che queste impostazioni di compilazione vengano visualizzate solo se creo il mio progetto utilizzando il modello Dati di base. Ma dovrebbe essere in qualche modo possibile abilitare queste impostazioni senza creare il progetto utilizzando il modello Dati di base. –

35

Utilizzando XCode 4.3:

Trova il tuo modo di costruire Impostazioni

  1. Seleziona nodo del progetto (in alto nodo) nel progetto Navigator

  2. Selezionare la progetto sotto Obiettivi

  3. Selezionare la scheda "Impostazioni di creazione"

Ricerca e impostare le MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS impostazione

  1. Scorrere fino in fondo le impostazioni di generazione per vicino il fondo e trovare la sezione denominata "Avvertenze Data Model versione del compilatore (MOMC)"

  2. Il prima voce è "MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS" e il valore predefinito è NO

  3. cambiare a sI

Costruisci di nuovo e gli avvisi dovrebbero sparire.

34

In XCode , e , è ancora possibile impostare la variabile.

  1. Spostarsi le impostazioni di creazione

    A. Selezionare il progetto sulla barra laterale sinistro sotto Navigatore progetto.

    B. Selezionare la scheda "Impostazioni di creazione".

  2. Trova e impostare MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS

    A. Selezionare 'Tutti' in alto a sinistra della schermata principale.

    B. Cerca MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS incollando la chiave nella barra di ricerca.

    C. Modificare il valore su SÌ.

Costruisci di nuovo e gli avvisi sono spariti.

**** **** EDIT

Grazie @RajTandel per il commento. Se vengono ancora visualizzati gli avvisi, riavviare Xcode e gli avvisi dovrebbero andare via.

+1

Questi passaggi sono ancora validi in Xcode 7 beta. –

+0

@MattLong, grazie! Aggiornerò la risposta – mikeho

+0

@mikeho i tuoi passaggi sono corretti. Grazie, ma negli avvertimenti di Xcode 7.2 esistono ancora, anche se lo pulisco e lo costruisco. quindi devo riavviare Xcode e tutti gli avvisi erano spariti. –

Problemi correlati