我现在正在处理一个简单的instagram项目。 我曾多次遇到同样的问题。 要使用Instagram,我使用InstagramKit引擎。它有一些预设(无效),使生活更轻松。但是,我总是遇到同样的问题。
我们说我们得到了这个:
- (void)getSelfUserDetails
{
[[InstagramEngine sharedEngine] getSelfUserDetailsWithSuccess:^(InstagramUser *userDetail) {
NSLog(@"%@",userDetail);
} failure:^(NSError *error) {
}];
}
这里的userDetail用于" Success"。它很好用。我需要的是在块完成后以某种方式保存它。
我已经尝试了一些事情,从创建属性到存储userDetails直到创建我自己的方法来返回userDetails。保存整数,NSStrings等同样的麻烦。
我想我错过了一些简单的出路。
请告诉我。
答案 0 :(得分:0)
您需要捕获可以发送响应对象的块中的对象 这可以是自我。
-(void)processUserDetails:(InstagramUser *) userDetail
{
//....
}
- (void)getSelfUserDetails
{
[[InstagramEngine sharedEngine] getSelfUserDetailsWithSuccess:^(InstagramUser *userDetail) {
[self processUserDetails: userDetail];
} failure:^(NSError *error) {
}];
}
答案 1 :(得分:0)
您可以创建一个属性来保存您找到的Instagram用户并在成功块中将其分配给它:
@property (nonatomic) InstagramUser *myUser;
- (void)getSelfUserDetails
{
[[InstagramEngine sharedEngine] getSelfUserDetailsWithSuccess:^(InstagramUser *userDetail) {
NSLog(@"%@",userDetail);
self.myUser = userDetail;
} failure:^(NSError *error) {
}];
}
答案 2 :(得分:-1)
这对于NSNotification很有用(因为上面的调用是异步发生的)。
你可以这样称呼:
[[NSNotificationCenter defaultCenter]
postNotificationName:@"TestNotification"
object:self
userInfo:@{ @"userDetail" : userDetail }
];
然后使用正在侦听该事件的任何方法获取userInfo数据。