2011-02-27 74 views
0

我创建了一个名为myclass的基于视图的项目。在imageview中显示图像时出现问题

我添加了另一个UIviewcontroller子类给它,命名为webdata。

在webdataviewcontroller.m我从网络服务器获取图像。

我需要从webdataViewController.m

这个我在webdataViewController.m代码myclassViewController.m显示在imageview的这个形象是

docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    imagepath = [NSString stringWithFormat:@"%@/image.png",docDir]; 
    logopath = [NSString stringWithFormat:@"%@/logo.png",docDir]; 

myclassViewController *obj = [[myclassViewController alloc]init]; 
obj.homeimage.image = [UIImage imageWithContentsOfFile:imagepath]; 

但不显示图像,我尝试打印在控制台

NSLog(@"image to display %@",obj.homeimage.image); 
NSLog(@"image to display %@",[UIImage imageWithContentsOfFile:imagepath]);  

图像,但我得到这样

image to display (null) 
image to display <UIImage: 0x6f614b0> 

为什么我得到null为obj.homeimage.image,我没有得到任何一个请帮助我。

谢谢你的爱戴。

(让我补充评论,如果问题是不理解)

+0

您应该使用'stringByAppendingPathComponent:'来​​创建路径。 – fabian789 2011-02-27 09:36:32

回答

1

你确定obj.homeimage不是零吗?如果它是零,那么obj.homeimage.image = ...会导致将图像属性设置为零对象,即“无”。

1

你为什么不给我们myclassViewController的代码?

此外,您在大写等方面也存在很多错误,这使得很难阅读代码,而且很麻烦。

myClassViewController应该MyClassViewController webdataViewController应该是WebDataViewController

你应该大小写混合变量名 homeimage应该homeImage imagepath应该imagePath

你说你子类 myclassViewController,我认为你意味着您将其添加为子视图。如果是这样,当你执行代码:

myclassViewController *obj = [[myclassViewController alloc]init]; 

你正在创建一个新的myclassViewController,而不是引用父视图控制器。您需要一个指向myclassViewController的实例的指针,该实例将webdataViewController作为子视图添加,并将图像添加到其属性中。此外,我猜这里是你的问题,你正在创建一个新的空实例myclassViewController,因此你还没有初始化你的ivars。 (除非你在-init方法中这样做,但我会怀疑这一点)。所以你alloc -ed和init -ed一个新的myclassViewController但它的变量都没有初始化,所以你只是消息零对象可能。这就是为什么你的代码没有崩溃但仍然没有响应。这又是一个猜测,但它可能是问题所在。

如果您为myclassViewController提供代码,则可以使用更多信息进行编辑。