NSString的值返回null,但不确定为什么?

我已经将我的NSString的值设置为“fid”给responseObject(见下文)。 responseObject返回我想要的数据,当NSLog'd,但由于某种原因,当我NSLog进一步下滑,它是空的。 我错过了什么吗? 见代码:

。H

@property (nonatomic, assign) NSString *fid; 

.M

 [DIOSFile fileSave:file success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"File uploaded!"); [file setObject:[responseObject objectForKey:@"fid"] forKey:@"fid"]; [file removeObjectForKey:@"file"]; fid = [responseObject objectForKey:@"fid"]; NSLog(@"%@",responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Failed to upload file!"); }]; NSDictionary *bodyValues = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:_itemDescrip.text, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]]; NSDictionary *languageDict = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:bodyValues] forKey:@"und"]; [nodeData setObject:languageDict forKey:@"body"]; [nodeData setObject:@"storage_item" forKey:@"type"]; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject: [NSString stringWithFormat:@"%@", fid] forKey:@"fid"]; NSLog(@"%@", fid); NSDictionary *fidLangDict = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:dict] forKey:@"und"]; [nodeData setObject:fidLangDict forKey:@"field_photo"]; [DIOSNode nodeSave:nodeData success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Node saved!"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Node did not save!"); }]; 

你正在调用一个asynchronous方法。

日志语句“进一步下去”是在fileSave方法完成之前执行的。 fileSave的两个callback函数将在稍后的某个时间被调用(从现在开始可能会有几秒钟的时间)。

无论你想做什么,需要fid都必须在fileSave的完成块中完成。