2011-02-28 11 views
18

मान लीजिए कि मेरे पास कुछ डेटा वाला ऑब्जेक्ट है।मैं NSLog में ऑब्जेक्ट के मान कैसे देख सकता हूं?

मैं NSLog का उपयोग करके उस डेटा को कैसे देख सकता हूं?

यदि कोई मेरे प्रश्न के बारे में स्पष्ट नहीं है, तो मुझे फिर से पूछ सकते हैं।

उत्तर

22

आप एक NSArray और NSDictionary और आदि वस्तुओं को देखने के लिए चाहते हैं तो आपको सीधे तरह NSLog(@"%@",object);

मुद्रित कर सकते हैं, तो यह एक उपयोगकर्ता परिभाषित वस्तु तो आप संपत्ति (विशेषता) के साथ फोन करके प्रदर्शित करने के लिए की जरूरत है।

नाम वस्तु के साथ

उपयोगकर्ता परिभाषित वस्तु और तरह

NSString *property1; 
int property2; 
NSMutableArray *property3; 

लक्षण इसे कंसोल में प्रिंट इस प्रकार है:

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

+0

क्या गुण दिखा रहे हैं कर रहे हैं का उपयोग करें? –

+0

@ वीयर: संपादित एक – Satya

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

या सीधे:

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

मैं इन सुझाव है:

वस्तुओं:

शब्दकोश, सरणी, जैसे वस्तुओं के लिए स्ट्रिंग्स इसे पसंद करते हैं:

NSLog(@"%@", object); 

पूर्णांकों जैसी बुनियादी डेटा प्रकारों के लिए

NSLog(@"%i",intVal); 

टाइप एन्कोडिंग के लिए आपको http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html

देखना चाहिए
18

यदि आप अपनी कक्षा में -(NSString*)description विधि लागू करते हैं तो आप डेटा के सारांश को आउटपुट करने के लिए NSLog का उपयोग कर सकते हैं। बेशक, आप किसी भी संपत्ति को सीधे आउटपुट भी कर सकते हैं।

उदाहरण के लिए:

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

पहले भाग कॉल description विधि और आउटपुट कि; दूसरे भाग को ऑब्जेक्ट की पूर्णांक संपत्ति और आउटपुट का मान मिलता है।

+0

जांचें मुझे पता था कि इसे मुद्रित करने के लिए मुझे एक फ़ंक्शन को कार्यान्वित करना है। यह वही है जो मैं ढूंढ रहा हूं। Upvoted। धन्यवाद! –

0

अतिरिक्त रूप से सत्य के उत्तर में, यदि आप बुनियादी सी डेटा प्रकार देखना चाहते हैं, तो प्रारूप विनिर्देशकों का उपयोग करें। एक पूर्णांक के लिए% d के रूप में इस तरह के:

NSLog (@"My integer:%d", myObject.myInteger); 

पूरी सूची यहाँ है:

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

11

हर ऑब्जेक्टिव-सी वस्तु (इस 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

संबंधित मुद्दे