Domanda

Esiste un metodo che posso ignorare nelle mie classi personalizzate in modo che quando

      NSLog(@"%@", myObject) 

si chiama, stamperà i campi (o qualsiasi altra cosa che ritengo importante) di mio oggetto? Credo che sto cercando l'Objective-C equivalente di toString() di Java.

È stato utile?

Soluzione

E 'il metodo di istanza description, dichiarato come:

- (NSString *)description

Ecco un esempio di implementazione (grazie a grahamparks):

- (NSString *)description {
   return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}

Altri suggerimenti

Aggiungi questo al @implementation della classe Foto:

- (NSString *)description {
   return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}

È possibile eseguire l'override del metodo di descrizione NSObject:

- (NSString *)description

A proposito della registrazione vi consiglio questo blog postare per una migliore registrazione in Objective-C.

Ci sono due funzioni che è possibile utilizzare.

- (NSString*)description

Questo verrà visualizzato quando si mette l'oggetto come, cioè un parametro per NSLog. L'altra funzione descrizione è:

- (NSString*)debugDescription

Questo verrà chiamato quando non po anInstanceOfYourClass nella finestra di comando di debug. Se la classe non ha una funzione debugDescription, poi basta description saranno chiamati.

Si noti che il NSObject classe di base ha description implementato, ma è piuttosto scarno: visualizza solo l'indirizzo dell'oggetto. Questo è il motivo per cui vi consiglio di implementare description in ogni classe che si desidera ottenere informazioni fuori, soprattutto se si utilizza il metodo description nel codice. Se si utilizza description nel codice, vi suggerisco di implementare debugDescription pure, anche facendo debugDescription più prolisso.

Questa uscita volontà le voci disponibili:

    NSLog((@"speechVoices:%", [[AVSpeechSynthesisVoice speechVoices] description] ));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top