0

私はバンプテクノロジーを使用するアプリケーションに取り組んでいます.1つはテーブルビューである4つのタブがあります。アプリケーションが開いているときにデータを転送できるように、このバンプAPIをアプリデリゲートクラスに記述しました。転送機能は正常に動作していますが、問題は、データをsq-liteに挿入していて、sqliteからのデータがタブバーアイテムビューの1つに表示されていることです。したがって、ユーザーがこのタブバーアイテムを選択してデータを受信すると、ビューを挿入し、新しい変更を加えてリロードするのが好きです。挿入前に言ったように、私は機能していますが、問題はビューのリロードです。誰かがこの問題を解決するのを手伝ってくれますか?

4

1 に答える 1

0

NSOperation を使用してバックグラウンドで挿入を実行し、レコードを挿入/編集するたびに通知を投稿できます。データを表示しているビュー コントローラーにリスナーを追加します。

そのため、コントローラが通知を受け取るたびに、メソッドを呼び出してデータベースからデータをリロードします。

@implementation MyClass

- (void) dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

- (id) init
{
    self = [super init];
    if (!self) return nil;


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadData:) name:@"COREDATA_OBJECT_EDITED" object:nil];

    return self;
}

- (void) reloadData:(NSNotification *) notification
{
    if ([[notification name] isEqualToString:@"COREDATA_OBJECT_EDITED"])
        {
            //load records from database and reload tableview
        }
}

@end





//Method where you are saving data objects in some other class

- (void) saveDataObject
{

    //Save Data object, if saved successfully then post notification to listener to reload the data
    // All instances of MyClass will be notified
    [[NSNotificationCenter defaultCenter] postNotificationName:@"COREDATA_OBJECT_EDITED" object:self];

}
于 2012-05-28T07:55:38.693 に答える