1

Xcode シミュレーターで Core Data を使用したことがないため、次の行で実行が停止するように見える理由に興味があります (以下を参照)。[[self managedDocument] documentState]これはデバイスでは問題なく動作しますが、シミュレータでは(null). これは、シミュレーターが Mac を使用しており、ディスク上にデータベースを作成していないことが原因であると思われますが、実際のデバイスで実行しているときに不足していることが起こっていないことを確認したかっただけです。

if([[self managedDocument] documentState] == UIDocumentStateNormal) {
    [self scanDataFromServer:kALL_REACTOR_TEMPS];
}

ノート:

シミュレーターで実行する必要はありません。Apple が実際のデバイスを私に発送する間、アプリケーションがより大きな iPhone5 画面でどのように動作するかを確認したかっただけです。

また:

  1. シミュレータは Retina 4 インチに設定されており、使用しているデバイスは iPhone4 です。
  2. アプリケーションは最初に Core Data を作成してデータを入力するため、ファイルが欠落しているわけではありません。
4

1 に答える 1

2

まずUIDocumentState、NSInteger 列挙型です。nil または null になることはありません。初期化されていない (ガベージ) か、ゼロの可能性があります。

これが何を意味するのかわかりません:

これは、シミュレーターが Mac を使用しており、ディスク上にデータベースを作成していないためだと思われます。

シミュレーターはコンピューターのハード ドライブをディスクとして使用し、ストレージ システムはシミュレーターとデバイスの間で違いはありません。もちろん、アプリケーションのルート フォルダー パスはシミュレーター上とデバイス上では異なりますが、それは問題ではありません。データベース ファイルは、Mac のアプリ フォルダー内にあります~/Library/Application Support/iPhone Simulator/

UIDocument作成後に再確認し、そうでないことを確認しnilます。また、ドキュメントのログを記録fileURLし、コンピュータ上でそのファイルを見つけて、そのファイルが存在することを確認します。

于 2012-11-01T16:14:01.307 に答える