CGSize ऑब्जेक्ट के मूल्य को कैसे प्रिंट या लॉग इन करें?


88

मैं CGSize ऑब्जेक्ट के मान को इस तरह लॉग (प्रिंट) करने की कोशिश कर रहा था:

CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);

NSLog(@"size of tab is %@",sizeOfTab);

क्या इस कोड में कुछ भी गलत है; NSLog स्टेटमेंट पर नियंत्रण के दौरान मेरा ऐप क्रैश हो रहा है।

धन्यवाद प्रसाद


2
NSStringFromCGSize () और भी NSStringFromCGRect ()
फेटी

जवाबों:


55

आप निम्नलिखित मूल्य पर कॉल कर सकते हैं जो आपके बाद का मूल्य है:

NSLog(@"width = %f, height = %f", mySize.width, mySize.height);

217

इसे इस्तेमाल करे

CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));

क्रैश इसलिए होता है क्योंकि प्रारूप sizeOfTabमें नहीं है NSString


3
कूल यह आज मैंने सीखा कुछ नया है। +1, लेकिन मैं अपना जवाब नहीं मिटाऊंगा :-P
प्रवीण एस

@ प्रवीन: थैंक्स .. ख़ुशी है कि मैं आपको आज कुछ नया सीखने में मदद करता हूँ ... बस एहसान वापस कर रहा हूँ। मैं एसओ के माध्यम से इस तरह की सूचना के अंत में रहा हूं।
विसाख

1
@ 7KV7 दुर्घटना होती है क्योंकि sizeOfTabकोई ऑब्जेक्ट नहीं है (कोई भी ऑब्जेक्ट काम करेगा, न कि सिर्फ एक NSString)। CGSizeएक संरचना है।
अल्बर्टमग

धन्यवाद काम कर रहा है, लेकिन इसके प्रदर्शन {नेन, 49}, नैन क्या है?
प्रसाद

@ प्रसाद: नान मुझे लगता है कि नंबर नहीं है। टैबकाउंट क्या है? लॉगिंग का प्रयास करेंself.frame.size.width/tabCount
visakh7

11

जैसा कि जोब्लो ने उल्लेख किया है ( मैंने इस उत्तर को टाइप करने और प्रारूपित करने के बाद देखा है ), एक वस्तु से एक संरचना बनाने के लिए NSStringFromCGSize(), सुंदर मुद्रण के लिए, और इसके उलटा भी UIKit फ़ंक्शन है ।CGSizeFromString()CGSizeNSString

Apple इस प्रकार के stringपैरामीटर का दस्तावेज :CGSizeFromString(string)

एक स्ट्रिंग जिसकी सामग्री "{ w , h }" है, जहां w की चौड़ाई है और h की ऊँचाई है। डब्ल्यू और मूल्यों पूर्णांक या नाव मूल्यों हो सकता है। वैध स्ट्रिंग का एक उदाहरण @ "{3.0,2.5}" है। स्ट्रिंग स्थानीयकृत नहीं है, इसलिए आइटम हमेशा अल्पविराम से अलग किए जाते हैं।


उदाहरण

CGSize size = CGSizeFromString(@"{320,568}");
NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));

उत्पादन

Pretty printed size: {320, 568}

अन्य उपयोगी कार्य ( CGGeometry संदर्भ )

  • CGRectGetHeight ()
  • CGRectGetWidth ()

6

% @ का अर्थ है कि आप एक स्ट्रिंग सम्मिलित करने का प्रयास कर रहे हैं। CGSize एक स्ट्रिंग नहीं है, और स्वचालित रूप से एक में परिवर्तित नहीं किया जा सकता है। इसलिए आपका ऐप क्रैश हो जाता है। इसके बजाय, आपको अलग-अलग गुणों को लॉग इन करने की आवश्यकता है, जैसे

NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);

% f का उपयोग किया जाता है क्योंकि चौड़ाई और ऊंचाई गुण फ्लोट के प्रकार के होते हैं

अन्य प्रारूप रूपांतरणों के लिए, डॉक्स देखें: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html


एसओ में आपका स्वागत है। विस्तृत उत्तर के लिए +1।
प्रवीण एस

धन्यवाद। मेरे चारों ओर एक नज़र थी और यह देखने के लिए आश्चर्यजनक है कि कितने लोग सवाल पूछने से पहले डॉक्स को देखने से कभी परेशान नहीं होते हैं। मैंने लिंक वहां रखा है ताकि हमें एक और प्रश्न न मिले कि इंट को कैसे प्रिंट करें ।
ग्रेग

3

CGSizeमेमर्स की चौड़ाई और ऊंचाई है जो प्रकार के हैं CGFloat। आप उन्हें निम्नलिखित का उपयोग करके प्रिंट कर सकते हैं

NSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);

3

यहाँ स्व.व्यू, UIView क्लास का दृश्य है। आप इस लॉग के साथ किसी भी फ़्रेम को प्रिंट कर सकते हैं।

      NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.