我无法从另一个类中保存检索NSurl?

时间:2012-05-11 11:06:18

标签: iphone objective-c ios xcode nsurl

我有一个返回NSUrl的函数,我想在另一个类中使用它。但是当我试图在我的另一个类中检索它时,它给了我null。 这是我的头等舱

@interface UOEventDetailController : UIViewController {
NSURL *imgData;
}
@property(nonatomic, retain)NSURL *imgData;
-(NSURL *)imgData;

@implementation UOEventDetailController
@synthesize imgData;

.m文件

-(NSURL *)imgData{
UOEventPost *post = (UOEventPost *)self.event;
NSURL *url = [NSURL URLWithString:post.postImageURL];
return url;
}

我想检索此课程中的网址

@class UOEventDetailController;

@interface UOEnlargeImageViewController : UIViewController {
IBOutlet UIImageView *enlargedImage;

}
@property (nonatomic, retain) UOEventDetailController *controller;
@property (nonatomic, retain) IBOutlet UIImageView *enlargedImage;

.m文件

@implementation UOEnlargeImageViewController
@synthesize controller;
@synthesize enlargedImage;

- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Enlarged Image";
controller = [[UOEventDetailController alloc]init];
NSURL *url = [controller imgData];
NSLog(@"%@",url);


}
@end

我可以检索post.postImageUrl以外的对象。 例如 而不是post.postImageUrl,我把字符串像@“omg”,@“god” 它会在我的其他课程中被检索出来......

修改

-(IBAction)enlargeImg{
UOEventPost *post = (UOEventPost *)self.event;
UOEnlargeImageViewController *enlarge = [[UOEnlargeImageViewController alloc]initWithNibName:nil bundle:nil];
enlarge.temp = post.postImageURL;
[self.navigationController pushViewController:enlarge animated:YES];
[suggestPopupView removeFromSuperview];
[enlarge release];
}

2 个答案:

答案 0 :(得分:1)

这是因为你正在制作一个新对象。对于新对象,相关属性为空,因此url也为空。

答案 1 :(得分:0)

当一个新对象被创建并且它与你想要的状态不同时,对象将为null,你必须使用protocol&如果流向后,则委托将对象传递给另一个类,否则确保您处理同一个对象。