Ho molta familiarità con la scrittura di applicazioni basate su VB ma sono nuovo su Xcode (e Objective C). Ho seguito numerosi tutorial sul web e ho compreso le basi e il modo di interagire con Interface Builder ecc. Tuttavia, sto davvero lottando con alcuni concetti di base del linguaggio C e sarei grato per qualsiasi aiuto tu possa offrire. Ecco il mio problema ...Come chiamare una funzione da un altro file di classe
Ho una semplice app per iphone che ha un controller di visualizzazione (FirstViewController) e una sottoview (SecondViewController) con i file di intestazione e classe associati.
Nel FirstViewController.m hanno una funzione definita
@implementation FirstViewController
- (void) writeToServer:(const uint8_t *) buf {
[oStream write:buf maxLength:strlen((char*)buf)];
}
Essa in realtà non importa quale sia la funzione.
voglio usare questa funzione nel mio SecondViewController, quindi in SecondViewController.m importare 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];
}
Questa ultima riga è dove il mio problema. XCode indica che FirstViewController potrebbe non rispondere a writeToServer. E quando provo a eseguire l'applicazione si blocca quando viene chiamata questa funzione.
Immagino di non capire appieno come condividere le funzioni e, ancora più importante, la relazione tra le classi.
In un mondo ideale creerei una classe globale per inserire le mie funzioni e chiamarle come richiesto.
Qualsiasi consiglio ricevuto con gratitudine.
È un uso migliore delegato –
ho fino votato Urs sperano di farlo tornare nella mia risposta anche –