私はParseを使用しており、データ ブラウザから "usernames" というタイトルのクラスを取得しています。クラス内のすべてのオブジェクトを取得し、それらを配列に格納します。次に、ユーザーがログインできるように、配列でユーザー名を検索します。パスワードも同じようにします。これが私のコードです:
- (IBAction)login:(id)sender
{
if ([usernameLogin.stringValue isEqualTo:@""] || [passwordLogin.stringValue isEqualTo:@""]) {
NSBeginAlertSheet(@"Error", @"OK", nil, nil, self.window, self, @selector(sheetDidEnd:resultCode:contextInfo:), NULL, NULL, @"Please fill in all fields.");
}
/* retrieve user from parse db */
PFQuery *usernameQuery = [PFQuery queryWithClassName:@"usernames"];
[usernameQuery findObjectsInBackgroundWithBlock:^(NSArray *usernames, NSError *error) {
NSString *userString = [NSString stringWithFormat:@"%@", usernameLogin.stringValue];
NSLog(@"USERS:\n %@", usernames);
int i;
for (i = 0; i < [usernames count]; i++) {
NSString *userFind = [usernames objectAtIndex:i];
if ([userString isEqualToString:userFind]) {
NSLog(@"FOUND!!!");
}
}
/*
if ([usernames indexOfObject:usernameLogin.stringValue]) {
NSLog(@"User: '%@' was found successfully!", usernameLogin.stringValue);
} else {
NSLog(@"User: '%@' doesn't exist in database, or password was incorrect!", usernameLogin.stringValue);
}
*/
}];
gameCont = [[CSGameController alloc] initWithWindowNibName:@"CSGameController"];
[gameCont showWindow:self];
[gameCont.window makeKeyAndOrderFront:nil];
_window.isVisible = false;
}
誰かが私が間違っていることを説明できますか? 入力したユーザーが存在するかどうかを確認するためにデータベースを検索しています。テスト ユーザーをセットアップしましたが、まだ存在しないと表示されます。本当にありがとう!追加した:
int i;
for (i = 0; i < [usernames count]; i++) {
NSString *userFind = [usernames objectAtIndex:i];
NSLog(@"UserFind class = %@, value = %@", [userFind class], userFind);
}
出力:
[2438:303] UserFind class = PFObject, value = <usernames:kx7aG2xfkX:(null)> {
username = ryan;
}