Я работаю над приложением IOS. Я успешно интегрировал Dropbox и сохраняю данные как записи в хранилищах данных в DropBox. До этого все было хорошо, но я не могу получить данные после удаления приложения и его переустановки. Но в одном сценарии я получаю данные. т. е. «Я вставил запись в любую из таблиц в хранилищах данных после того, как вставил ее, когда я пытался получить данные. Она идет успешно». Но мне нужно получить ее в первый раз при установке приложения. Если кто-то работал с пожалуйста, помогите мне. заранее спасибо.
-(void)dropBoxScuccessLogin:(NSString *)successString
{
if ([successString isEqualToString:@"scuccess"])
{
//appdelegate.window.rootViewController = appdelegate.splitview;
NSArray *array1=[appdelegate.datastoreManager listDatastores:nil];
NSLog(@"array is %@",array1);
if (self.account)
{
NSDate *mydate=[NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM-DD-yyyy hh:mm:ss a"];
NSString *stringFromDate = [formatter stringFromDate:mydate];
DBTable *customerTbl = [self.store getTable:@"DataSyncedOndate"];
DBRecord *task = [customerTbl insert:@{ @"SyncedDate": stringFromDate} ];
__weak DropBoxViewController *slf = self;
[self.store addObserver:self block:^ {
if (slf.store.status & (DBDatastoreIncoming | DBDatastoreOutgoing))
{
[self syncTasks];
}
}];
[self.store sync:nil];
}
}
else
{
NSLog(@"Dropbox Login faild");
}
}
- (void)syncTasks
{
NSLog(@"Self Account is in syncTasks is %@",self.account);
if (self.account)
{
NSDictionary *changed = [self.store sync:nil];
NSLog(@" Data is Synced");
// [self getDataSync];
dispatch_async(dispatch_get_main_queue(), ^{
[self retriveDataFromDB];
});
// [self performSelector:@selector(getDataSync) withObject:nil afterDelay:2.0];
}
else
{
// [alertView show];
}
}
в методе retriveDataFromDB
-(void)retriveDataFromDB
{
NSLog(@"retrive from DB method called");
///////////Admin details///////////
NSMutableArray *tasks = [NSMutableArray arrayWithArray:[[self.store getTable:@"PriceList"] query:nil error:nil]];
NSLog(@"tasks count is %d",[tasks count]);
for (int k=0; k<[tasks count]; k++)
{
DBRecord *recordObj=[tasks objectAtIndex:k];
NSString *Tier1_Id =recordObj[@"Tier1"];
NSString *Tier2_Id =recordObj[@"Tier2"];
NSString *Tier3_Id =recordObj[@"Tier3"];
NSString *Code_Id =recordObj[@"Code"];
NSString *CRV_Id =recordObj[@"CRV"];
NSString *insertAdminString = [NSString stringWithFormat:@"INSERT INTO admin_Tbl(Code,Tier1,Tier2,Tier3,CRV) VALUES(\"%@\",\"%@\",\"%@\",\"%@\",\"%@\")",Code_Id,Tier1_Id,Tier2_Id,Tier3_Id,CRV_Id];
BOOL isDataadded = [appdelegate executeInsertQuery:insertAdminString];
if (isDataadded == YES)
{
NSLog(@"admin table insertrd successfully");
}
else
{
NSLog(@"admin table not insertrd successfully");
}
}
}
В журнале я получаю количество задач "0".
sync
туда, когда есть входящие изменения? См. Руководство: dropbox.com/developers/datastore/tutorial/ios#listeners < / а>. Если это не так, опубликуйте код. - person user94559   schedule 25.01.2014sync
. По крайней мере, ниsyncTasks
, ниretriveDataFromDB
в коде, которым вы поделились, на самом деле не вызываютsync
. (Тем не менее, я вижу закомментированную строку, которая использовалась для этого. Думаю, вы когда-то пробовали это сделать?) - person user94559   schedule 27.01.2014