2013-09-07 6 views
-1

У меня есть страница входа с именем пользователя и паролем. Когда я ввожу правильные учетные данные, он перейдет к другому контроллеру представления. В этом представлении у контроллера есть кнопка для выбора соответствующей пользовательской информации. Если имя пользователя совпадает, мне нужно получить только их данные и отображение.Получить соответствующие пользовательские данные

код:

viewController.m:

if ([responseData length]){ 

    NSLog(@"Response ==> %@", responseData); 
    NSMutableDictionary *dict=[responseData JSONValue];     
    NSMutableDictionary *dict1=[responseData JSONValue];     
    NSInteger success = [(NSNumber *) [dict objectForKey:@"success"] integerValue]; 
    NSInteger id1 = [(NSNumber *) [dict1 objectForKey:@"id"] integerValue];    

    NSLog(@"%d",success); 
    if(success == 1){ 
     NSLog(@"Login SUCCESS"); 
     [self alertStatus:@"Logged in Successfully." :@"Login Success!"]; 
     [self.navigationController pushViewController:overlay animated:YES]; 

    } else { 
     NSString *error_msg = (NSString *) [dict objectForKey:@"error_message"]; 
     [self alertStatus:error_msg :@"Login Failed!"]; 
    } 
} 

Над кодом [email protected]"success" содержит username & password.[email protected]"id" содержат каждый идентификатор пользователя. Если этот идентификатор совпадает, мне нужно отобразить эти идентификационные данные.

Здесь мне нужно получить [email protected]"id". company_id хранение [email protected]"id" данные. Как пройти [email protected]"id" от viewController до ViewController1.m в выбранном запросе. CategoryNames & categoryIds Массив, содержащий имя конкретного пользователя & Идентификаторы. Если [email protected]"id" спичек мне нужно получить, что пользователю categoryNames & categoryIds

if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) { 

    const char *sql = "SELECT id,cat_name FROM categories where company_id = [email protected]"id"; 
    NSLog(@"sql is %s",sql); 

    categoryNames = [NSMutableArray array]; 
    categoryIds = [NSMutableArray array]; 
    sqlite3_stmt *statement; 
    // int catID = 0; 
    if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) { 

    // We "step" through the results - once for each row. 
    while (sqlite3_step(statement) == SQLITE_ROW) { 
     NSString *categoryName = [[NSString alloc] 
            initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)]; 
     NSLog(@"catName is %@",categoryName); 
     NSInteger categoryId = sqlite3_column_int(statement, 0); 

     [categoryNames addObject:categoryName]; 
     [categoryIds addObject:@(categoryId)]; 
    } 
    } 
} 

Здесь UIActionSheet отображает categoryNames для конкретного пользователя ID:

TSActionSheet *actionSheet = [[TSActionSheet alloc] initWithTitle:@"Design"];  


for (int i = 0; i<[categoryNames count]; i++) {   

      NSLog(@"catearray is %@",categoryNames); 

      [actionSheet addButtonWithTitle:[categoryNames objectAtIndex:i] block:^{ 

       [self actionSheetClickedButtonAtIndex:i]; 

     }]; 
+0

что вопрос – meda

+0

Это для нескольких пользователей. Каждый пользователь регистрирует свое имя на моем сервере. После регистрации на моем сервере будет создан один идентификатор пользователя для каждого пользователя. Затем каждый пользователь пишет что-то. Это хранится у каждого пользователя. Если пользователь установит приложение и введите имя пользователя, пароль будет отправлен в viewcontroller1.m. В viewcontroller1.m с кнопкой, нажмите кнопку «Мне нужно получить определенные данные пользователя с сервера». – user2674668

+0

@Meda: Ты взял? – user2674668

ответ

1

Вы можете использовать NSUserDefaults для этого:

if ([responseData length]){ 

    NSLog(@"Response ==> %@", responseData); 
    NSMutableDictionary *dict=[responseData JSONValue];         
    NSInteger success = [(NSNumber *) [dict objectForKey:@"success"] integerValue]; 

    NSLog(@"%d",success); 
    if(success == 1){ 
     //save the ID 
     NSInteger id1 = [(NSNumber *) [dict objectForKey:@"id"] integerValue]; 
     NSUserDefaults *userData = [NSUserDefaults standardUserDefaults]; 
     [userData setInteger:id1 forKey:@"id"]; 
     [userData synchronize];  
     NSLog(@"Login SUCCESS"); 
     [self alertStatus:@"Logged in Successfully." :@"Login Success!"]; 
     [self.navigationController pushViewController:overlay animated:YES]; 

    } else { 
     NSString *error_msg = (NSString *) [dict objectForKey:@"error_message"]; 
     [self alertStatus:error_msg :@"Login Failed!"]; 
    } 
} 

И Затем, чтобы получить значение id, вы сделаете это в ViewController 1.m:

//Get the Id 
NSUserDefaults *userData = [NSUserDefaults standardUserDefaults]; 
NSInteger id1 = [userData integerForKey:@"id"]; 

EDIT:

Но как я могу передать этот идентификатор SQL-запрос?

Не знаю, почему у вас есть objForKey в запросе попробовать это:

NSString *sql = [NSString stringWithFormat: 
        @"SELECT id,cat_name FROM categories where company_id = %d", id1]; 
+0

Вы правы. Но как я могу передать этот запрос Id в sql? const char * sql =" SELECT id, cat_name FROM categories где company_id = ObjForKey = @ "id"; – user2674668

+0

@ user2674668 вы видите вторую часть моего ответа. Я показал, как вернуть идентификатор, какая часть вам нужна. – meda

+0

Это правильно. Но как перейти к этой строке: SELECT id, cat_name FROM categories where company_id = ObjForKey = @ "id" – user2674668

Смежные вопросы