2009-09-27 4 views
5

In Xcode (3,2 su Snow Leopard) quando inizio a scrivere una funzione comeL'editor Xcode è impostato su - (void) anziché - (voidPtr)?

-(void)myFunctionName { 

} 

Quando ho iniziare a digitare il codice di suggerimento è

-(voidPtr 
  1. Qual è la differenza tra void e voidPtr? Suppongo che voidPtr sia un puntatore di qualche tipo, quali casi richiedono il suo utilizzo? Voglio utilizzare voidPtr anziché void?

  2. Posso modificare una preferenza nell'editor che verrà impostato su void e quindi posso digitare P e scheda completa su voidPtr se lo desidero?

  3. Esiste un modo generale per configurare o assegnare la priorità ai suggerimenti sul codice in modo che vengano visualizzati suggerimenti comuni prima di ulteriori suggerimenti sul codice oscuro?

  4. Posso creare scorciatoie per il codice? Dove digito un paio di caratteri e un comando per espandere il codice standard?

  5. Quali sono alcuni tutorial di pratica consigliati per essere davvero produttivi nell'editing Xcode?

Aggiornamento: Basato su suggerimento di Darren Sembra voidptr viene da

CarbonCore/Threads.h 

... 

/* 
    The following ProcPtrs cannot be interchanged with UniversalProcPtrs because 
    of differences between 680x0 and PowerPC runtime architectures with regard to 
    the implementation of the Thread Manager. 
*/ 
typedef void *       voidPtr; 

Sono in esecuzione Xcode su una vaniglia nuova installazione di Snow Leopard. E non ho fatto nulla di esotico con i miei progetti. Basta iniziare alcune esercitazioni di base su Xcode e Objective C. Qualcuno con esperienza in Objective C ha utili informazioni di base qui?

risposta

2

Aggiornamento: Questo era un bug nelle versioni precedenti di Xcode. Bug # 7256749 è stato corretto. Ho appena provato con la nuova versione di Xcode, e tutto è rose.

Informazioni storiche: (per le versioni di Xcode prima del rilascio di Xcode 4.0)

Se si inizia a digitare una dichiarazione di funzione C-style:

void SomeFunc(... 

Poi "vuoto" apparirà come il primo suggerimento. Il codice code di Xcode applica regole diverse a seconda della sintassi circostante e, quando si crea una dichiarazione di funzione Objective-C, sembra escludere tutti i tipi incorporati, incluso void.

Ho archiviato un bug con Apple (via bugreport.apple.com) e vi consiglio di fare lo stesso. Apple dà la priorità alle loro correzioni software (almeno parzialmente) in base al numero di report duplicati che vedono per un determinato problema.

Nota: Ecco il testo integrale della segnalazione presentata ad Apple:

Sommario:
senso il codice di Xcode fornisce un elenco di corrispondenze suggerite durante la digitazione. Questo elenco viene filtrato in base al contesto. Quando si digita una dichiarazione del metodo Objective-C, i tipi predefiniti (void, int, float, ecc.) Vengono filtrati. I tipi numerici come int e float possono essere intenzionalmente mancanti per incoraggiare l'uso di NSInteger o NSNumber, ma il tipo di vuoto è ancora utilizzato in ogni momento e dovrebbe apparire nella lista dei suggerimenti.

Procedura per riprodurre:
1. Aprire Xcode
2. Creare un nuovo progetto con il modello di cacao applicazione
3. Aprire il file di intestazione dell'applicazione delegato
4. Iniziare la creazione di una dichiarazione di metodo con un ritorno vuoto tipo:
- (vo
5. Premere fuga per visualizzare l'elenco completo dei completamenti suggeriti

Risultati attesi:
mi sarei aspettato di vedere " vuoto "al livello più alto dell'elenco di suggerimenti e mi aspetto che venga evidenziato come la scelta più probabile.

risultati effettivi:
La lista non contiene neppure "vuoto", e il candidato scelto è "voidptr", che viene dichiarata in carboncore/Threads.h

regressione:
sconosciuta, ma sicuramente accade nella versione più recente di Xcode (3,2 (1610)) su Mac OS X10.6

Note:
Vedere discussione sulla StackOverflow.com (Xcode editor default to -(void) instead of -(voidPtr)?)

+0

Grazie per la risposta. Presentato un bug report pure. C'è un modo per personalizzare le opzioni del filtro in Xcode? –

+0

Non che io sappia. Ho trovato alcune delle impostazioni predefinite frustranti a volte, ma nel complesso funziona ancora. Se trovi un modo per personalizzarli, assicurati di farcelo sapere! –

+0

Apple ha risolto questo problema con Xcode versione 4.0. Risposta aggiornata –

1

voidPtr non è un tipo Objective-C o Cacao standard. XCode probabilmente presenta voidPtr perché ha trovato quel simbolo da qualche parte nel tuo progetto.

È possibile selezionare "File> Apri rapidamente" (⌘⇧D) dal menu e digitare voidPtr per vedere dove tale simbolo è definito. Puoi anche fare lo stesso tenendo premuto il tasto Comando e facendo doppio clic su un simbolo nel codice sorgente.

Problemi correlati