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