通过AFNetwokring

时间:2015-09-30 06:48:39

标签: ios objective-c nsstring afnetworking-2

问题:

- (void) getReportSummaryWithCompletionBlock:(void (^)(bool success))success {

        NSString *storedToken = [[User sharedUser] accessToken];
        NSLog(@"Stored Class: %@",[storedToken class]);
        //Logs -- __NSCFString
        NSString *constantToken = @"e5c47aa3-c168-480b-a10c-1c4379096fbf";
        NSLog(@"Constant Class: %@",[constantToken class]);
        //Logs -- __NSCFConstantString
        [self.manager.requestSerializer setValue:constantToken forHTTPHeaderField:@"Authorization"];
        //[self.manager.requestSerializer setValue:storedToken forHTTPHeaderField:@"Authorization"];

        [self.manager GET:someURLString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"%@",responseObject);
            success(YES);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            success(NO);
        }];

当我记录storedToken的值时,它会打印 “e5c47aa3-c168-480b-a10c-1c4379096fbf”

并且constantToken打印 e5c47aa3-c168-480b-a10c-1c4379096fbf ,但没有

当我使用 constantToken 时,服务器会正​​确响应,但是当我使用 storedToken 时,服务器响应不正确。

问题:

现在有解决此问题的方法吗?无论如何将NSCFString转换为NSCFConstantString?

提前致谢:)。

3 个答案:

答案 0 :(得分:1)

您正在将storedToken存储为@"\"xxx-yyy-zzz-bla-bla\""请正确保存或要求服务器向您发送不带双引号的字符串

暂时你可以做的是修剪",你也可以用空刺来取代",但我不推荐

NSString *goodToken = [storedToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\""]];
NSLog(@"%@", goodToken);


P.S。

  

这应该被视为临时修复,您应该保存不具有双引号的令牌。请查看代码并找出您获取双引号的原因,可能是您的服务器正在向您发送带双引号的字符串。

答案 1 :(得分:0)

NSString *storedToken = [[User sharedUser] accessToken];
NSString *tokenWithoutQuote = [storedToken stringByReplacingOccurrencesOfString:@"\"" withString:@""];

所以这解决了这个问题。是的,因为 @Inder Kumar Rathore 指向的storedToken存储为@"\"xxx-yyy-zzz-bla-bla\""

答案 2 :(得分:-1)

NSCFConstantStringNSString的一个实现,它将字符串数据保存在代码存储区中。

NSCFString实际上是免费的桥接字符串,可以作为CFString Land中的Core Foundation以及NSString土地中的Objective-C

您可以参考NSString Optimizations获取更多参考资料。