AFNetworking 3.0을 사용하여 다음보기 컨트롤러에서 서버에 대한 응답으로 특정 매개 변수를 보내시겠습니까?

수 라즈 수 칼레

저는 iOS 앱 개발에있어서 아주 새로운 사람이고 AFNetworking 3.0을 사용할 것입니다. 모바일 번호를 입력하면 처음 볼 때. 제출 버튼을 클릭하면 서버와 연결되고 서버에서 다음과 같은 응답이 나타납니다.

responseData: [{"edriverId":"bd307a3ec329e10a2cff8fb87480823da114f8f4","token":"6uc4d1houfecbmjgy9ezpru9n25nw40b17cwk439j52"}]

이제 내 질문은 responseData에서 해당 토큰 만 가져 와서 다음보기에서 서버로 보낼 수있는 방법입니다. 제발 도와주세요.

참고 : 서비스 토큰을 호출 할 때마다 매번 변경됩니다.

내 코드는 다음과 같습니다.

-(void)serverconnection

{

    NSString *Loginurl = [NSString stringWithFormat:@"https://24x7tracker.com/busservices/School/DriverPreLogin"];


NSDictionary *params = @{@"mobile":self.phonenumber.text,

                         @"archive":@"schooldb1"

                         };


AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];


manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];


manager.responseSerializer = [AFHTTPResponseSerializer serializer];

AFSecurityPolicy* policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

[policy setValidatesDomainName:NO];

[policy setAllowInvalidCertificates:YES];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/html",nil];



manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/plain",nil];


[manager POST:Loginurl parameters:params progress:nil success:^(NSURLSessionTask *task, id responseObject) {


    NSLog(@"Json: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);

    [self getdata:responseObject];


    NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    NSLog(@"responseData: %@", str);

    [self performSegueWithIdentifier:@"loginsegue" sender:self];

}
      failure:^(NSURLSessionTask *operation, NSError *error)

{

    NSLog(@"Error: %@", error);

    UIAlertController *Erroralert=   [UIAlertController

                                      alertControllerWithTitle:@" Network Connection Failed!!"

                                      message:@"Please try again"

                                      preferredStyle:UIAlertControllerStyleAlert];

    [self presentViewController:Erroralert animated:YES completion:nil];





    UIAlertAction* yesButton = [UIAlertAction

                                actionWithTitle:@"Ok"

                                style:UIAlertActionStyleDefault

                                handler:^(UIAlertAction * action)

                                {
                                    [self resignFirstResponder];

                                    [Erroralert dismissViewControllerAnimated:YES completion:nil];



                                }];

    [Erroralert addAction: yesButton];


}];


}

-(void)getdata:(NSData *)data

{}
Anbu.Karthik

두 가지 방법으로 할 수 있습니다

  1. NSUserDefault

    // NSArray *temp = (NSArray *)responseObject;
    
    NSError *error;
    NSArray *temp = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
    
    [[NSUserDefaults standardUserDefaults] setObject:[[temp objectAtIndex:0] valueForKey:@"token"] forKey:@"token"];
    [self performSegueWithIdentifier:@"loginsegue" sender:self];
    

두 번째 페이지

검색

검색을위한 String에서 NSUserDefaults당신이 사용하는 직접 수objectForKey

NSString *token = [[NSUserDefaults standardUserDefaults]objectForKey:@"token"];
  1. 두 번째 페이지에 문자열을 다음과 같이 전달하십시오.

첫 페이지는 문자열에 객체를 저장하기 위해 하나의 전역 값을 만듭니다.

@property (strong, nonatomic)          NSString *tokenString;

응답 객체를 serilize하고 필요한 전역 값에 저장하십시오.

                   NSError *error;
 NSArray *temp = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];

     // in this line we assingn the current value to global value
     tokenString = [[temp objectAtIndex:0] valueForKey:@"token"];
      [self performSegueWithIdentifier:@"loginsegue" sender:self];

해당 대상 뷰 컨트롤러에서 현재 문자열을 전달하기 위해 하나의 전역 값을 만듭니다.

@property (strong, nonatomic)          NSString *fetchtokenString;

첫 번째 VC에서 prepareForSegue 메소드는 글로벌 값을 두 번째 페이지로 전달합니다.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

secondViewController *vc = segue.destinationViewController;
// pass the current object to second page value
vc.fetchtokenString = tokenString;

마지막으로 두 번째 VC는 viewDidload 페이지에서 값을 얻을 수 있습니다.

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
 NSLog (@"token value ==%@",fetchtokenString);
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관