2011-02-28 57 views

回答

22

如果你想看到一個NSArray和NSDictionary中和等對象,那麼你可以直接打印像NSLog(@"%@",object);

如果它是一個用戶定義的對象,那麼你需要與財產(屬性)調用顯示。

用戶定義的名稱爲對象的對象和屬性等

NSString *property1; 
int property2; 
NSMutableArray *property3; 

打印他們在控制檯如下:

NSLog(@"%@, %d, %@" object.property1,object.property2,object.property3);

+0

什麼屬性都出現了? – 2011-02-28 10:50:31

+0

@Veer:檢查編輯的一個 – Satya 2011-02-28 11:02:22

0
NSLog(@"My object data:%@",[myObj someData]); 
NSLog(@"My object Other data:%@",[myObj someOtherData]); 

或者直接:

NSLog(@"%@",myObj); 
NSLog(@"Description:%@",[myObj description]); 
18

如果在班級中實施-(NSString*)description方法,則可以使用NSLog輸出數據摘要。當然,你也可以直接輸出任何屬性。

例如:

NSLog (@"%@ %d", object, object.integer); 

第一部分調用description方法並輸出該;第二部分獲取對象的整數屬性的值並輸出該值。

+0

我知道我必須實現一個函數來打印它。這正是我正在尋找的。 Upvoted。謝謝! – 2011-12-01 00:01:25

11

每一個Objective-C的對象(這是來自NSObject的)有一個名爲description屬性。所以,如果你想打印關於你的課程的信息,這是要走的路。

@implementation MyClass 

- (NSString*)description 
{ 
    return [NSString stringWithFormat:@"MyClass:%@", @"This is my class"]; 
} 

所以如果你打這樣的電話。

MyClass *myClass = [[MyClass alloc] init]; 
NSLog(@"%@", myClass); 
NSLog(@"%@", [myClass description]); //Same as the line above 

然後,它會寫"MyClass:This is my class"控制檯(在這種情況下,將打印兩次)。

7

實施description給定的類。

-(NSString*)description 
{ return [NSString stringWithFormat:@"<%@> name: `%@` size: `%@`", NSStringFromClass(self), self.name, NSStringFromCGSize(self.size)]; } 

NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}` 
+3

這是正確的答案。 – RegularExpression 2015-05-20 04:44:03