2010-01-11 13 views
11

में NSNumber एनएसएनंबर ivar को एनएसएलओजी करने का प्रयास कर रहा हूं, मैं एक कंसोल ऐप पर काम कर रहा हूं जो विभिन्न गाने ट्रैक करता है। मैं एक nsnumber जो एक NSLog बयान में गीत अवधि के लिए आबंटित किया गया है प्रवेश करने का प्रयास गीत वर्ग ऊपर जमीन से पहले हो रही पर काम कर रहा हूँ और चलाने में कोई समस्या में:एक उदाहरण विधि

// 
// 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 

मूल रूप से मैं नहीं कर रहा हूँ सुनिश्चित करें कि जब प्रिंट विधि कहलाती है तो एनएसएलएनएन कथन में nsnumber को कैसे शामिल किया जाए, साथ ही मैं वास्तव में यह सुनिश्चित नहीं करता कि इन nsobjects सामान्य से कैसे निपटें, वे एक ऑब्जेक्ट जो मैं बनाऊंगा और एसी प्रकार के बीच में दिखता हूं। इन्हें कैसे संभालना है इस पर कोई स्पष्टीकरण की सराहना की जाएगी।

धन्यवाद,

निक

उत्तर

32

एक प्रारूप स्ट्रिंग में एक वस्तु का वर्णन सम्मिलित करने के लिए, %@ का उपयोग करें।

आप इसे अपने शीर्षक/कलाकार/एल्बम एनएसएसटींग्स ​​के साथ भी कर सकते हैं ताकि आपको पहले उन पर -UTF8String पर कॉल करने की आवश्यकता न हो।

अपने गीत अवधि के लिए, आप या तो NSNumber सीधे प्रवेश करें या एक नाव या पूर्णांक प्रतिनिधित्व लॉग ऑन -floatValue या -integerValue बुला और %f और %d साथ उन लोगों के प्रवेश करके कर सकते हैं।

उदाहरण:

NSLog(@"%@", songTitle); 
NSLog(@"%@", songDuration); 
NSLog(@"%f", [songDuration floatValue]); 
NSLog(@"%d", [songDuration integerValue]); 
संबंधित मुद्दे