将对象发送到另一个类的方法时出现问题

时间:2012-01-30 02:55:00

标签: objective-c ios cocoa-touch

我想使用 - (void)drawRect:(CGRect)rect来管理UIViewController的一些不错的输出。那是因为我创建了一个UIView子类。现在我可以将图片输出到UIViewController。现在我遇到了一个问题,如何将包含主题,文本等所需的所有数据的对象传递给UIView子类,并且该对象是在UIViewController类中创建的。

我以这种方式创建对象:

- (void)viewDidLoad
{

self.setQualityButton.hidden=YES;
//[self setTheItem:theItem];
[drawItemDetails setTheItem:theItem]; //drawItemDetails is my UIView subclass
//theItem is an object I've retained from TableView and it's not empty
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}

在drawItemDetails(UIView子类)中:

-(void)setTheItem:(ItemShow*)inputTheItem;
{
if(theItem!=inputTheItem)
{
    [theItem release];
    theItem=inputTheItem;
    [theItem retain];
}
[self setNeedsDisplay];
NSLog(@"%@",theItem.itemYear); //output null
}

出了什么问题,这种数据传递方法是否完全有效?

1 个答案:

答案 0 :(得分:0)

将数据传递给视图就好了 - 如果您正在设置UILabel的文本,那么您所执行的操作大致相同。

你似乎对自定义视图-drawRect:所做的事情听起来很奇怪/错误。任何视图的-drawRect:都应该在为其设置的上下文中绘制视图,就是这样。它不应该关心视图控制器,尝试将数据传递给其他对象等。如果你告诉我们更多关于你想要完成的事情,我们可能会提供更好的选择。