Я очень хорошо знаком с написанием приложений на основе VB, но не знаком с Xcode (и Objective C). Я прошел через множество учебных пособий в Интернете и понял основы и как взаимодействовать с Interface Builder и т. Д. Однако я действительно борюсь с некоторыми базовыми концепциями языка C и буду благодарен за любую помощь, которую вы можете предложить. Heres my problem ...Как вызвать функцию из другого файла класса
У меня есть простое приложение для iphone, у которого есть контроллер вида (FirstViewController) и subview (SecondViewController) с соответствующими заголовками и файлами классов.
В 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];
}
Это последняя строка, где моя проблема. XCode сообщает мне, что FirstViewController может не отвечать на writeToServer. И когда я пытаюсь запустить приложение, он вылетает при вызове этой функции.
Я думаю, я не совсем понимаю, как делиться функциями и, что более важно, отношениями между классами.
В идеальном мире я бы создал глобальный класс для размещения своих функций и вызова их по мере необходимости.
Любой совет с благодарностью получил.
Лучше использовать делегат –
я на голосование Урс надеюсь получить его обратно в мой ответ тоже –