1

バックエンド サービスに stackmob を使用しています。これらのコードを使用して新しいユーザーを作成します。

User *newUser = [[User alloc] initIntoManagedObjectContext:self.managedObjectContext];
[newUser setValue:info.username forKey:[newUser primaryKeyField]];
[newUser setValue:info.email forKey:@"email"];
[newUser setPassword:info.password];
NSError *error = nil;
if ([self.managedObjectContext save:&error]) {
}

ユーザーは次のコードを使用してログインします。

[self.client loginWithUsername:info.username password:info.password onSuccess:^(NSDictionary *result) {
    [userDefaults setBool:YES forKey:@"signedin"];
    NSLog(@"user signed in");
} onFailure:^(NSError *error) {
    NSLog(@"login error");
}];

現在、イベントには多くのユーザーがいます。

だから、したい[self.event addUsersObject:(User *)]。しかし、現在のログ ユーザーを取得するにはどうすればよいので、現在のユーザーをこのイベントに追加できます。

4

2 に答える 2

0

私は StackMob のプラットフォーム エバンジェリストです。

現在ログインしているユーザーをフェッチし、そのオブジェクトを関係に追加するプロジェクトを作成しました。コードをダウンロードして自分で確認することができます。

https://github.com/SidneyAllen/hollagram-ios

適切なコードについては、JustSayinViewController.m ファイル内を調べてください。

于 2013-01-31T17:13:27.477 に答える
0

loginWithUsername の onSuccess ブロックで、ログインに使用したユーザー名で User エンティティをクエリする必要があります。このようなもの...

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username=%@", info.username];
[fetchRequest setPredicate:predicate];

[self.managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *results){
    ///there should be only 1 result, but the code should really check
    NSLog(@"%@",results[0]);
    User* loggedInUser = results[0];
    [self.event addUserObject:loggedInUser];

} onFailure:^(NSError *error) {
    NSLog(@"Error fetching: %@", error);
}];
于 2013-01-31T04:35:54.380 に答える