2010-01-11 18 views
11

Tôi đang làm việc trên ứng dụng bảng điều khiển theo dõi các bài hát khác nhau. Tôi đang làm việc trên nhận được lớp bài hát lên khỏi mặt đất đầu tiên và đã chạy vào một snag cố gắng để ghi lại một NSNumber mà đã được phân bổ trong suốt thời gian bài hát vào một tuyên bố NSLog:Đang cố gắng NSLog một thanh ngang NSNumber trong một phương pháp thể hiện

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

Về cơ bản tôi không chắc chắn làm thế nào để kết hợp các nsnumber vào báo cáo nslog khi phương thức in được gọi, cộng với im không thực sự chắc chắn làm thế nào để đối phó với các nsobjects ingeneral họ có vẻ loại ở giữa một đối tượng tôi sẽ tạo ra và loại ac. Bất kỳ làm rõ về cách xử lý này sẽ được đánh giá cao.

Cảm ơn,

Nick

Trả lời

32

Để chèn mô tả của một đối tượng trong một chuỗi định dạng, sử dụng %@.

Bạn cũng có thể làm điều này với tiêu đề/nghệ sĩ/album NSStrings của mình để bạn không cần phải gọi số -UTF8String trước tiên.

Đối với thời gian bài hát của bạn, bạn có thể đăng nhập các NSNumber trực tiếp hoặc đăng một phao hoặc đại diện số nguyên bằng cách gọi -floatValue hoặc -integerValue và đăng nhập với những người có %f%d.

Ví dụ:

NSLog(@"%@", songTitle); 
NSLog(@"%@", songDuration); 
NSLog(@"%f", [songDuration floatValue]); 
NSLog(@"%d", [songDuration integerValue]); 
Các vấn đề liên quan