1

コアデータxcode 4.3.2 に何か問題があります ?Stanford Paul Hegarty class for ios 5.0(Video 14 Core data demo)

実行しましxcode 4.3.2たが、 のエントリが表示されないため、コア データが機能していないようですtableview。別のコンピューターで実行しようとしましxcode 4.2ios 5.0 が、同じ問題に遭遇した人は誰でも完全に機能していますか? 私はそれが間違っていると確信していxcodeます。

4

3 に答える 3

2

Paul Hegarty は、授業の後、CoreData データベースを SAVE するための呼び出しを含む、彼のコードの更新バージョンを公開しました。これが、CoreData 情報が保持されない理由である可能性があります。

彼の更新メモは次のとおりです。

// should probably saveToURL:forSaveOperation:(UIDocumentSaveForOverwriting)completionHandler: here!
// we could decide to rely on UIManagedDocument's autosaving, but explicit saving would be better
// because if we quit the app before autosave happens, then it'll come up blank next time we run
// this is what it would look like (ADDED AFTER LECTURE) ...
[document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:NULL];

したがって、次のように「fetchFlickrDataInDocument」関数に「document saveToURL」行を追加する必要があります。

- (void)fetchFlickrDataIntoDocument:(UIManagedDocument *)document
    {
        dispatch_queue_t fetchQ = dispatch_queue_create("Flickr fetcher", NULL);
        dispatch_async(fetchQ, ^{
            NSArray *photos = [FlickrFetcher recentGeoreferencedPhotos];
            [document.managedObjectContext performBlock:^{

// perform in the NSMOC's safe thread (main thread)
                for (NSDictionary *flickrInfo in photos) {
                    [Photo photoWithFlickrInfo:flickrInfo inManagedObjectContext:document.managedObjectContext];
                    // table will automatically update due to NSFetchedResultsController's observing of the NSMOC
                }

                // should probably saveToURL:forSaveOperation:(UIDocumentSaveForOverwriting)completionHandler: here!
                // we could decide to rely on UIManagedDocument's autosaving, but explicit saving would be better
                // because if we quit the app before autosave happens, then it'll come up blank next time we run
                // this is what it would look like (ADDED AFTER LECTURE) ...
                [document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:NULL];
                // note that we don't do anything in the completion handler this time

            }];
        });

    }
于 2012-11-27T05:45:16.930 に答える
2

面白い。私は同じ問題を抱えており、XCode 4.3 も使用していますが、Flickr ライセンスが必要であり、私が持っていないためだと思いました。(FlickAPIKey.hには があり、#define FlickrAPIKey @""そのキーがないと何もダウンロードできません。)

更新: Flickr API キーを取得し (Web サイトから取得できます)、XCode 4.3 で Photomania アプリを試してみました。これは魅力的に機能するので、ここでは XCode は問題ではないようです。(ときどき、奇妙なバグやコンパイラ エラーを取り除くために、XCode を停止して再起動する必要があることに気付きました。) とにかく、再試行する前に、最初にデータを削除することをお勧めします。実行する前にアプリを削除するだけです。それとデータベースファイルも削除されます。

于 2012-07-04T06:59:23.240 に答える
0

Objective-C を使用してまだ同じ問題に直面している場合は、API キーを取得した後に行う必要があることがもう 1 つあります。すべてhttp://https://FlickrFetcher フォルダー内のファイル内に変更します。これは私にとってはうまくいきました。

于 2017-01-10T18:40:35.830 に答える