Мой делегат приложения должен разблокировать / заблокировать заказ на покупку в моей базе данных Microsoft SQL, когда он входит в фоновый режим или завершается.
Вот мой код
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"App will enter background");
if ([purchaseOrderIsLocked boolValue] && [purchaseOrderAutoID intValue] > 0) {
NSLog(@"Unlock Purchase Order because app is in background %i", [purchaseOrderAutoID intValue]);
[self unlockPurchaseOrderWithAutoID:self.purchaseOrderAutoID];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"App will enter foreground");
if ([purchaseOrderIsLocked boolValue] == FALSE && [purchaseOrderAutoID intValue] > 0) {
NSLog(@"Lock Purchase Order because app is coming back %i", [purchaseOrderAutoID intValue]);
[self lockPurchaseOrderWithAutoID:self.purchaseOrderAutoID];
}
}
-(void)lockPurchaseOrderWithAutoID:(NSNumber *)autoID {
NSLog(@"lock purchase order called with autoID=%i",[autoID intValue]);
self.client = [SqlClientConnect connect];
[self.client executeQuery:[NSString stringWithFormat:@"UPDATE PURCHASE SET PURCHASELOCK = '9999' WHERE PURCHASEORDERNO = '%i'", [autoID intValue]]
withCompletionBlock:^(SqlClientQuery *query) {
if (query.succeeded) {
NSLog(@"locked purchase order");
purchaseOrderIsLocked = [NSNumber numberWithBool:YES];
} else {
[self queryFailedWithError:query.errorText];
}
}];
}
-(void)unlockPurchaseOrderWithAutoID:(NSNumber *)autoID {
NSLog(@"unlock purchase order called with autoID=%i",[autoID intValue]);
self.client = [SqlClientConnect connect];
[self.client executeQuery:[NSString stringWithFormat:@"UPDATE PURCHASE SET PURCHASELOCK = '0' WHERE PURCHASEORDERNO = '%i'", [autoID intValue]]
withCompletionBlock:^(SqlClientQuery *query) {
if (query.succeeded) {
NSLog(@"unlocked purchase order");
purchaseOrderIsLocked = [NSNumber numberWithBool:FALSE];
} else {
[self queryFailedWithError:query.errorText];
}
}];
}
}
Хорошо, это выглядит хорошоменя ... однако, когда я запускаю приложение, это то, что я получаю из журнала, когда я нажимаю кнопку "Домой"
2011-12-14 13:41:20.558 MA Mobile[2267:707] App will enter background
2011-12-14 13:41:20.558 MA Mobile[2267:707] Unlock Purchase Order
because app is in background 18
2011-12-14 13:41:20.559 MA Mobile[2267:707] unlock purchase order called with autoID=18
Он должен был пройти весь путь и опубликовать "разблокированный заказ на покупку", но это не't Когда я возобновляю приложение, это то, что я получаю.
2011-12-14 13: 41: 44.741 MA Mobile [2267: 707] Приложение выйдет на передний план 1 2011-12-14 13: 41: 44.973 MA Mobile [2267: 707] разблокированный заказ на покупку
Это похоже на запуск кода блока после возобновления.Это связано с блоком?Должен ли я сделать что-то другое?