2010-01-11 8 views
11

Ich arbeite an einer Konsolen-App, die verschiedene Songs verfolgt. Ich arbeite den Song-Klasse auf immer zuerst vom Boden auf und haben sich zu einem Haken laufen versuchen, ein NSNumber anmelden, die in eine NSLog-Anweisung für den Song Dauer zugewiesen wurde:NS NSLogar in einer Instanz-Methode NSLoggen

// 
// Song.h 
// MusicCollection.15.9 
// 
// Created by Nicholas Iannone on 1/11/10. 
    // Copyright 2010 __MyCompanyName__. All rights reserved. 
    // 

    #import <Foundation/Foundation.h> 


@interface Song : NSObject { 

NSString *songTitle; 
NSString *songArtist; 
NSString *songAlbum; 
NSNumber *SongDuration; 
} 
@property (nonatomic, retain) NSString *songTitle, *songArtist, *songAlbum; 
@property (nonatomic, retain) NSNumber *SongDuration; 

-(id) init; 


-(void) printSong; 



@end 


// 
// Song.m 
// MusicCollection.15.9  
// 
// Created by Nicholas Iannone on 1/11/10. 
// Copyright 2010 __MyCompanyName__. All rights reserved. 
// 

#import "Song.h" 


@implementation Song 

@synthesize songTitle, songArtist, songAlbum; 
@synthesize SongDuration; 

-(id) init 
{ 

if (self = [super init]) { 

    [SongDuration numberWithInteger]; 
} 

-(void) printSong 
{ 



NSLog(@"===============Song Info=================="); 
NSLog (@"|          |"); 
NSLog (@"| %-31s |", [songTitle UTF8String]); 
NSLog (@"| %-31s |", [songArtist UTF8String]); 
NSLog (@"| %-31s |", [songAlbum UTF8String]);          
NSLog (@"| %[email protected] |" [self songDuration]); 
NSLog (@"|          |"); 
NSLog (@"|          |"); 
NSLog (@"========================================="); 

} 
@end 

Im Grunde bin ich nicht Sicher, wie die nsnumber in die Nslog-Anweisung zu integrieren, wenn die print-Methode aufgerufen wird, und ich bin nicht wirklich sicher, wie mit diesen Nsobjects im Allgemeinen umzugehen scheinen sie Art zwischen einem Objekt, das ich erstellen und ac-Typ. Jede Klärung, wie mit diesen umzugehen ist, würde geschätzt.

Danke,

Nick

Antwort

32

eines Objekts Beschreibung in einem Format-String, einzufügen %@ verwenden.

Sie können dies auch mit Ihrem Titel/Interpret/Album NSStrings tun, so dass Sie nicht zuerst -UTF8String anrufen müssen.

Für Ihre Song Dauer, können Sie entweder die NSNumber log einen Schwimmer oder Integer-Darstellung direkt oder melden Sie sich von -floatValue oder -integerValue und Anmeldung diejenigen mit %f und %d aufrufen.

Beispiele:

NSLog(@"%@", songTitle); 
NSLog(@"%@", songDuration); 
NSLog(@"%f", [songDuration floatValue]); 
NSLog(@"%d", [songDuration integerValue]);