मैं वीबी आधारित अनुप्रयोगों को लिखने से बहुत परिचित हूं लेकिन एक्सकोड (और उद्देश्य सी) में नया हूं। मैं वेब पर कई ट्यूटोरियल चला गया हूं और मूल बातें समझता हूं और इंटरफेस बिल्डर इत्यादि से कैसे बातचीत कर सकता हूं। हालांकि, मैं वास्तव में सी भाषा की कुछ बुनियादी अवधारणाओं के साथ संघर्ष कर रहा हूं और आप जो भी मदद कर सकते हैं उसके लिए आभारी होंगे। मेरी समस्या है ...किसी अन्य वर्ग फ़ाइल से फ़ंक्शन को कॉल करने के लिए कैसे करें
मेरे पास एक साधारण आईफोन ऐप है जिसमें एक दृश्य नियंत्रक (फर्स्ट व्यू कंट्रोलर) और संबंधित हेडर और क्लास फाइलों के साथ एक सबव्यू (सेकेंड व्यू कंट्रोलर) है।
FirstViewController.m में एक समारोह में परिभाषित किया
@implementation FirstViewController
- (void) writeToServer:(const uint8_t *) buf {
[oStream write:buf maxLength:strlen((char*)buf)];
}
यह वास्तव में कोई फर्क नहीं पड़ता समारोह है क्या है।
मैं अपने SecondViewController में इस समारोह का उपयोग करना चाहते तो SecondViewController.m में मैं आयात FirstViewController.h
#import "SecondViewController.h"
#import "FirstViewController.h"
@implementation SecondViewController
-(IBAction) SetButton: (id) sender {
NSString *s = [@"Fill:" stringByAppendingString: FillLevelValue.text];
NSString *strToSend = [s stringByAppendingString: @":"];
const uint8_t *str = (uint8_t *) [strToSend cStringUsingEncoding:NSASCIIStringEncoding];
FillLevelValue.text = strToSend;
[FirstViewController writeToServer:str];
}
यह अंतिम पंक्ति जहां मेरी समस्या है। एक्सकोड मुझे बताता है कि फर्स्ट व्यू कंट्रोलर लिखने के लिए प्रतिक्रिया नहीं दे सकता है। और जब मैं एप्लिकेशन को चलाने का प्रयास करता हूं तो यह फ़ंक्शन कहलाता है तो यह क्रैश हो जाता है।
मुझे लगता है कि मैं पूरी तरह से समझ नहीं पा रहा हूं कि कार्यों को कैसे साझा करना है और अधिक महत्वपूर्ण बात यह है कि कक्षाओं के बीच संबंध।
एक आदर्श दुनिया में मैं अपने कार्यों को रखने और उन्हें आवश्यकतानुसार कॉल करने के लिए एक वैश्विक वर्ग बनाउंगा।
कोई सलाह आभारी रूप से प्राप्त हुई।
- (void) writeToServer:(const uint8_t *) buf;
अपने FirstViewController.h फ़ाइल में:
आप बेहतर इस्तेमाल प्रतिनिधि –
मैं मतदान किया उर्स यह मेरा उत्तर में वापस लिए भी –