Iphone 获取异步Twitter配置文件映像iOS5
无法找出为什么profileImage无法粘贴。。。(我加上这个词只是想看看这是否与呆在一个街区内有关……事实并非如此) profileImage只是一个普通的合成属性Iphone 获取异步Twitter配置文件映像iOS5,iphone,ios5,twitter,objective-c-blocks,Iphone,Ios5,Twitter,Objective C Blocks,无法找出为什么profileImage无法粘贴。。。(我加上这个词只是想看看这是否与呆在一个街区内有关……事实并非如此) profileImage只是一个普通的合成属性 @property (strong, nonatomic) UIImageView *profileImage; -(void)fetchProfileImage { __block UIImage *pImage; dispatch_async(dispatch_get_global_queue(0, 0)
@property (strong, nonatomic) UIImageView *profileImage;
-(void)fetchProfileImage
{
__block UIImage *pImage;
dispatch_async(dispatch_get_global_queue(0, 0), ^
{
NSString *url_ = [NSString stringWithFormat:@"http://api.twitter.com/1/users/profile_image/%@", userName];
TWRequest *fetchUserImageRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:url_] parameters:nil requestMethod:TWRequestMethodGET];
[fetchUserImageRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
if ([urlResponse statusCode] == 200)
{
dispatch_async(dispatch_get_main_queue(), ^(void)
{
NSLog(@"[UIImage imageWithData:responseData] = %@", [UIImage imageWithData:responseData]);
pImage = [UIImage imageWithData:responseData];
NSLog(@"pImage = %@", pImage);
self.profileImage.image = pImage;
NSLog(@"self.profileImage.image = %@", self.profileImage.image);
});
}
}];
});
}
日志:
[UIImage imageWithData:responseData] = <UIImage: 0x2685d0>
pImage = <UIImage: 0x2685d0>
self.profileImage.image = (null)
[UIImage imageWithData:responseData]=
pImage=
self.profileImage.image=(空)
结果表明,在创建父对象时,我没有初始化UIImageView
tweet.profileImage = [[UIImageView alloc] init];
我们看不到self.profileImage的属性。我猜这就是问题所在。此外,不需要在循环外部定义pImage。另一个问题,当响应返回时,“self”是否存在?@PauldeLange你的意思是看不到属性?self返回正确。profileImage有效吗?也许它在其他地方被设置为零?如果self或profileImage为nil,则会发生这种情况。我假设profileImage是一个UIImageView,您的视图是否已加载?dispatch\u get\u global\u queue(0,0)可以替换为dispatch\u get\u main\u queue(),以确保您也在UI线程上。事实上,这里有些可疑之处。应该没有理由在调用函数的不同线程中创建TWRequest对象。