StackMob을 사용하여 내 앱에 Facebook을 통합하기 시작했습니다. StackMob의 오프라인 동기화를 사용하려고했지만 깨진 것 같습니다. didFinishLaunchingWithOptions에서StackMob With Facebook 오프라인 동기화
:
SM_CACHE_ENABLED = YES;
SMClient *client = [[SMClient alloc] initWithAPIVersion:@"0" publicKey:@"cc5f57c8-4a5d-424d-a3e1-0594c675cad8"];
SMCoreDataStore *coreDataStore = [client coreDataStoreWithManagedObjectModel:self.managedObjectModel];
coreDataStore.cachePolicy = SMCachePolicyTryCacheOnly;
_managedObjectContext = [coreDataStore contextForCurrentThread];
사용자가 페이스 북에 로그인 :
[[SMClient defaultClient] loginWithFacebookToken:FBSession.activeSession.accessTokenData.accessToken createUserIfNeeded:YES usernameForCreate:nil onSuccess:^(NSDictionary *result) {
NSLog(@"Logged in with StackMob!");
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"User"];
[self.managedObjectContext executeFetchRequest:fetchRequest returnManagedObjectIDs:NO onSuccess:^(NSArray *results) {
NSLog(@"users: %@",results);
} onFailure:^(NSError *error) {
NSLog(@"error: %@",error);
}];
} onFailure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
문제는 사용자가 성공적으로 생성되어 있지만 fetchRequest의 결과가 빈 상태 (empty)의 배열이 있다는 것이다. 캐시 정책을 SMCachePolicyTryCacheElseNetwork로 변경하면 fetchRequest의 결과가 빈 배열이 아닙니다.
사용자가 캐시에 저장되지 않은 이유는 무엇입니까 ?? 또한 StackMob에 캐시의 일부 객체 만 저장하도록 지시하려면 어떻게해야합니까?
정말 고마워요!
나는 그것이 버그가 아니길 바랬다. StackMob의 Rest API를 사용하기로 결정했습니다. 안정성이 더 좋고 캐시를 완전히 제어 할 것이기 때문입니다. 고맙습니다! –