उद्देश्य-सी में, मेरे पास कोड का एक साधारण ब्लॉक है जो प्रत्येक बार बटन दबाए जाने पर काउंटर को बढ़ाता है। मेरे लॉग, और इंटरफ़ेस के अपडेट भी, एक के बजाय 4 की वृद्धि दिखा रहे हैं। क्या यह सिर्फ मेरे स्वरूपण के साथ एक प्रदर्शन समस्या है (मैं% d का उपयोग कर रहा हूं) या कुछ और जो मुझे याद आ रही है? मेरा अनुमान "% d" के साथ है लेकिन मैं उद्देश्य-सी के लिए नया हूं और सुनिश्चित नहीं हूं। । (ध्यान दें, मैं भी करने की कोशिश की "काउंटर + = 1;" एक ही परिणाम के साथउद्देश्य-सी में, यह 1 के बजाय 4 की वृद्धि क्यों करता है?
int counterValue = 0;
NSLog(@"Count at init: %d",counterValue);
...
-(IBAction)pushButton {
NSLog(@"Count (Pre-Push) = %d",counterValue);
counterValue++;
NSLog(@"Count (Post-Push) = %d",counterValue);
}
उत्पादन इस प्रकार है:
2010-02-20 18:39:39.125 My App[37536:207] Count at init: 0
2010-02-20 18:39:39.845 My App[37536:207] Count (Pre-Push) = 0
2010-02-20 18:39:39.846 My App[37536:207] Count (Post-Push) = 4
2010-02-20 18:39:40.165 My App[37536:207] Count (Pre-Push) = 4
2010-02-20 18:39:40.166 My App[37536:207] Count (Post-Push) = 8
2010-02-20 18:39:40.727 My App[37536:207] Count (Pre-Push) = 8
2010-02-20 18:39:40.728 My App[37536:207] Count (Post-Push) = 12
एक नाइट: कार्य विधियां '- (आईबीएक्शन) क्या होनी चाहिए: (आईडी) प्रेषक ', भले ही आप' प्रेषक 'तर्क का उपयोग नहीं कर रहे हों। – Wevah
@Wevah: वास्तव में नहीं। जबकि एक-तर्क फ़ॉर्म सबसे लोकप्रिय है, ये सभी विधि हस्ताक्षर कार्य विधियों के लिए समान रूप से मान्य हैं: (1) '- (शून्य) क्रिया', (2)' - (शून्य) क्रिया: (आईडी) प्रेषक', (3) '- (शून्य) कार्रवाई: (आईडी) प्रेषक forEvent: (UIEvent *) घटना'। स्रोत: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIControl_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006779-RH2-SW28 –
आह, आप सही हैं । जाहिर है, एक और UIKit/AppKit अंतर। (आपको सही होने के लिए संशोधित किया गया है;)) – Wevah