2014-04-29 66 views
-1

我是新來的Objective-C和我在Java中不知道什麼時候你要輸出語句或變量或東西它的代碼是System.out.println("text");Objective-C的101 /初級

所以,我想知道什麼當我想輸出文本或變量或類似的東西時,類似的代碼將用於Objective-C。

我已經在網上搜索,它說我們NSLog但只記錄到控制檯,並沒有輸出給用戶我也試過printf。我似乎無法找到有效的東西。

+0

您使用的是iOS嗎? Mac OS X?還有別的嗎? –

+0

我正在使用Mac OS X – user2989172

+2

你是什麼意思printf不起作用?它適用於其他人。 – Chuck

回答

2

使用printf

printf(@"%d", 4); 

以上將無法正常工作。

它應該是:

printf("%d", 4); //without the @ 

輸出例如:

NSLog(@"Hello!"); 

輸出的對象:

NSString *myString = @"Hello!"; 
NSLog("%@", myString); 

輸出字符串常量:

NSLog(@"This is my %@", @"string"); 

輸出一個類名稱:

NSLog(@"%@", NSStringFromClass(NSObject)); 

輸出一個NSError

NSLog(@"%@",[error localizedDescription]); 

輸出一個浮動:

NSLog(@"%f", x); 

僅舉幾例。欲瞭解更多信息,請閱讀this

希望這會有所幫助。

附錄(關於「輸出到用戶」):

如果我理解正確的話,你想在屏幕上顯示一些文字?

順便說一句,在Java System.out.println("text");將只輸出到控制檯,而不是在應用程序,無論你使用的是OSX,Ubuntu,Windows或Gentoo ....

有許多在線教程,但我們希望這將讓你開始:

viewDidLoad

UILabel *myLabel = [[UILabel alloc] initWithFrame:(CGRect){{0.0f, 0.0f}, 140.0f, 25.0f}]; 
myLabel.text = @"Hello World!"; 

[self.view addSubview:myLabel]; 
+1

NSLog不只是「輸出一個對象」。它會打印包含程序名稱,時間戳和您爲stderr指定的格式化字符串的日誌語句。如果你只是想打印某些內容到標準輸出,所有這些NSLog示例都應該是'printf(「%s \ n」,[[NSString stringWithFormat:你的NSLOG ARGS HERE] UTF8String])''。 – Chuck

+0

@Chuck是的,你絕對正確。但是因爲他把這個問題標記爲objective-c,我只是簡單地展示一下如何用'NSLog'來實現。 – Unheilig

1

要打印出的字符串:

NSLog(@"This is my string."); 

如果你想要在打印輸出中包含變量,您可以使用NSLog()中的字符串作爲格式化程序

NSString *myString = @"my string"; 
    NSLog(@"This is %@", myString); 

    // OUTPUT: This is my string 

%@對於的myString變量的佔位符:你後面的字符串變量列表。其他佔位符包括:整數%i%d,浮點數%f,以及%@也用於對象。

int age = 2; 
    float weight = 25.5f; 
    NSLog(@"At the early age of %d, the child weighed %f lbs.", age, weight); 

    // OUTPUT: At the early age of 2, the child weighed 25.5 lbs.