iOS更新对象的属性

时间:2013-07-31 10:35:55

标签: objective-c object

我是iOS开发人员的新手,还有一个我非常感谢的问题。

我有一个ViewController,它有一个我想要定期替换的属性:

@property (strong, nonatomic) IBOutlet UIImageView *image;

现在在我更新该属性的另一个类中,我首先分配并初始化ViewController,然后相应地更新该属性。然而,当我用另一个图像替换该图像时,它只使用第一个图像。但是,如果我使用alloc init实例化另一个ViewController,那么一切正常。

所以我的问题是通过创建我的ViewController的新实例来更新的正确/最佳实践方式 - 内存效率明智是最佳实践吗?

感谢。

1 个答案:

答案 0 :(得分:0)

听起来你肯定想要改变图像,而不是替换整个视图控制器。

您可以显示更改图像的代码吗?另外,请指定是否要更改其中的图像视图 图像。 (图像视图显示屏幕上的实际图像。我建议您将属性命名为imageView,以避免混淆。)

以下是两个例子。我假设有一个变量'theViewController',它包含一个引用你的视图控制器。

更换图片视图:

// Create a new image view with a new image inside it
theViewController.image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img1"]];

替换图片:

// Put a new image into the existing image view
theViewController.image.image = [UIImage imageNamed:@"img1"];

最后一个示例演示了为什么属性名称imageView最好是image:现在,看起来您正在更改“图像上的图像”。但实际上,您正在更改imageView上的图像。