UDP経由でArduinoを制御する簡単なアプリを書いています。私は 2 つのビューを作成しました: - 制御用 (ViewController.h/cpp) - とりわけ Arduino のホスト名の設定用。(Settings.h/cpp)
設定ビューには、テキストフィールドとスイッチがあります。スイッチが設定されている場合、ホスト名は上書きされます。
ホスト名は、ViewController.h で次のように宣言されます。
extern const char *host_name;
そして、ViewController.m で:
const char *host_name = "WIZnetccef3";
設定ビューのテキストフィールドに表示するには、viewDidLoad 関数を使用しています。
textfield.text = [[NSString alloc]initWithUTF8String:host_name];
ビューへの変更は正常に機能します。ホスト名「WIZnetccef3」が表示されます。
スライダーの位置を変更すると、スイッチがオンの場合に次のコードが実行されます。
const char *hname = [textfield.text UTF8String];
host_name = hname;
しかし、ビューを切り替えて設定に戻ると、新しいホスト名は表示されません。テキストフィールドが空であるか、奇妙な文字が含まれています。
これは私の問題であり、何が問題なのかわかりません。どこで間違いを犯したかを見つけるためにいくつかのエラーを組み込みましたが、それは役に立ちませんでした。