我试图将字符串转换为NSDate,但我收到了错误。
NSLog(@"JSON %@", responseObject);
NSArray *login = responseObject;
NSString *expires = [login valueForKey:@"expires"];
NSLog(@"%@", expires);
NSLog of responseObject(我使用MMRecord 1.3和AFNetworking 2)
<Login: 0x91dcdb0> (entity: Login; id: 0x91dcdf0 <x-coredata:///Login/t82A1AC69-501C-4C49-BAEE-C676FD655FDE2> ; data: {\n \"access_token\" = \"******************\";\n error = nil;\n \"error_description\" = nil;\n expires = \"Thu, 22 May 2014 02:30:21 GMT\";\n \"expires_in\" = 1209599;\n \"grant_type\" = nil;\n issued = \"Thu, 08 May 2014 02:30:21 GMT\";\n password = nil;\n \"token_type\" = ***;\n userName = \"su@email.in\";\n userid = nil;\n})
当我NSLog那个字符串expires
时,我得到这样的东西
(
"Thu, 22 May 2014 02:17:02 GMT"
)
如果我对该字符串执行任何操作,我就会收到此错误
[__NSArrayI length]: unrecognized selector sent to instance 0x9754950
我认为,出于某种原因,expires
属于NSArray类型。你能告诉我这有什么问题吗?如何将其更改为NSDate?我是iOS的新手。在此先感谢!
答案 0 :(得分:0)
看起来密钥@“expires”指的是数组,而不是字符串。如果您可以确定它始终是一个数组并且始终是非空的,那么您可以修复:
NSArray *expiresArray = login[@"expires"];
NSString *expires = expiresArray[0];
接下来你想要的是NSDate。请参阅答案here。
答案 1 :(得分:-1)
NSString *expires = [[login valueForKey:@"expires"] firstObject];