0

私は、多くのビュー コントローラーを含む大きなプロジェクトに取り組んでいます。これらのビューの進行は、長いフォームに入力されるデータに依存します。

私のあまり賢くない方法で、データを自動入力して、現在取り組んでいる機能にすばやくアクセスできるようにしています。私はこのような条件を使用していました...

if(
   [[[UIDevice currentDevice] name] hasPrefix:@"Rob"] ||
   [[[UIDevice currentDevice] name] hasPrefix:@"iPad Simulator"]
   )
{
    self.label.text = @"xxx";
    ...
}

...iPad とシミュレーターの両方でテストできたので、これはうまくいきました。現在、クライアントはシミュレーターでもテストできるようにしたいので、自動入力をそのままにしておくことはできません。最も簡単な解決策は、シミュレーターの名前を変更することだと思います。

シミュレーターの Settings.app では、編集できません。~/Library/Application Support/iPhone Simulator/5.1 のファイルに「iPad Simulator」または「Simulator」というテキストが表示されるのも見たことがありません。plist プロパティの設定について検索を行いましたが、うまくいきませんでした。

これを達成する方法を知っている人はいますか?

4

2 に答える 2

0

現在のデバイスの名前ではなくモデルをチェックすることで、iPhoneシミュレーターが実行されているかどうかをチェックできます。次のようなことをする必要があります:

if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"]) {
    // Run for iPhone simulator
}

:iPadシミュレーターを使用する場合は、「iPadシミュレーター」を使用する必要があります

また、hasPrefixを使用した現在のコードはまったく安全ではありません。Robは一般名であるため、他の誰かがRobで始まるデバイスの名前を持つデバイスを持っている場合、テスト情報が公開されます。このオートコンプリートをシミュレーターのみにターゲットにすることを強くお勧めします

于 2012-10-02T18:18:54.163 に答える
0

新しいクラスを作成し、そこにロード ロジックを配置するだけです。

その後、デリゲートの didFinishLaunchingWithOptions メソッドからこのクラスを呼び出します。

これにより、いつでも上記の呼び出しにコメントを付けたり、データが既にロードされているかどうかを確認したり、無視したりすることができます。

于 2012-10-02T18:25:25.943 に答える