2010-12-09 74 views
3

我不確定標題是否可以理解。我想要的是做一個方便的方法,像NSLog方法一樣工作,並結合下面的幾行?如何在Objective-C中創建一個將NSString stringWithFormat作爲參數的方法?

這是我的時刻:

NSString *out = [NSString stringWithFormat:@"something %d,%d",1,2]; 
[self showLog:out]; 

這樣的方法將如何看起來像的定義是什麼?

- (void) showLog:(NSString *) data; 

感謝

+0

這就是我跟着採用可變參數在我的代碼:http://numbergrinder.com/node/35 – 2010-12-09 10:13:11

回答

7

在接口方面,

-(void) showLog: (NSString*) formatSpecifier, ...; 

在實施

-(void) showLog: (NSString*) formatSpecifier, ... 
{ 
    va_list formatArgs; 
    va_start(formatArgs, formatSpecifier); 
    NSString* logMessage = [[NSString alloc] initWithFormat: formatSpecifier arguments: formatArgs]; 
    va_end(formatArgs); 

    // Do want you need to to output the string. 

    [logMessage release]; 
} 
+1

有關* variadic方法*的好文章:http://cocoawithlove.com/2009/05/variable-argument-lists-in-cocoa.html – vikingosegundo 2010-12-09 18:58:25

1

像這樣的東西?

NSString *out = [NSString stringWithFormat:@"something %d,%d",1,2]; 
[self showLog:out]; 

- (void)showLog:(NSString*)data{ 
    NSLog(@"%@", data); 
} 

只求更多的幫助,如果你需要它:)

或隨意澄清你的問題,如果我錯把你需要的;)

問候 克里斯蒂安

0

如果你想創建一個將String作爲參數的方法,那麼使用這個代碼它會幫助你。

#import <Foundation/Foundation.h> 
@interface SampleClass:NSObject 
    //Method declaration 
- (void) functn:(NSString*)str; 
@end 

@implementation SampleClass 
    //<<<<<<<<<<-- Function to print UserName -->>>>>>>>>>>>>>> 
- (void)functn:(NSString*)str 
    { 
    NSLog(@"Your Name is %@",str); 
    } 
@end 
int main() 
{ 
SampleClass *sampleClass = [[SampleClass alloc]init]; 
/* calling a method to get max value */ 
NSString *[email protected]"Pir fahim shah"; 
[sampleClass functn:yourName]; 
return 0; 
} 
相關問題