访问变量/函数从子类的目标C
我有访问公共变量“活动”,这是一种UIActivityIndicatorView
类型,参见类下面声明在QuickStartViewController.h
一个问题:访问变量/函数从子类的目标C
@interface QuickStartViewController : UIViewController <ABPeoplePickerNavigationControllerDelegate> {
@public
IBOutlet UIActivityIndicatorView *activity;
}
@property (nonatomic, retain) UIActivityIndicatorView *activity;
@end
该函数是从称为其他类:
#import "QuickStartViewController.h"
@interface NumberValidator : QuickStartViewController....
见下文:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[activity startAnimating];
NSLog(@"This function is called, but [activity startAnimating] still doesn't work...");
}
注:[activity startAnimating]
在QuickStartViewController
类中调用时工作正常。
对于[activity startAnimating]
不工作,您有什么建议吗?
我将首先在-connectionDidFinishLoading中设置断点:并验证该活动不是零。
这可能有效 - 即活动指标开始动画。但可能还有另一个问题 - 在您停止处理connectionDidFinishLoading
方法之前,GUI不会刷新,因此似乎[activity startAnimating]
不起作用。 (您可以通过不调用[activity stopAnimating]来测试它 - 它应该最终显示出来。)
请参阅this thread (connectionDidFinishLoading - how to force update UIView?)和my response。
它是(a)不编译,(b)当它撞到那里时崩溃,或者(c)只是没有做任何事情?我怀疑是(c),那是因为你没有活动指标。尝试将活动的值记录到控制台,并验证其有效的对象。
感谢您的快速回复。
connectionDidFinishLoading不会成功执行,并且我已经放置了NSLog来确认。但是,startAnimating没有。
注意:
如果我[活动startAnimating];;内以下,然后它工作...:
QuickStartViewController.m(不NumberValidator.m):
- (IBAction)showPicker:(id)sender {
[activity startAnimating];
...
}
是在''connectionDidFinishLoading'零activity'你有没有测试我的建议,不将其关闭,并等待如果在完成处理URL响应时出现? – 2010-01-10 14:17:04
的IBOutlet
宏表明UIActivityIndicatorView
将构造并分配时的QuickStartViewController
实例或者NumberValidator
通过一个NSBundle的+loadNibNamed:owner:options:
实例或调用UIViewController的initWithNibName:bundle:
如果没有实例您NumberValidator
通过它的笔尖,那么活动属性将不会被分配。如果您是通过笔尖构建它,则您尚未通过CTRL +将UIActivityIndicatorView
拖动到控制器中,在Interface Builder中为该插座分配合适的UIActivityIndicatorView
。
嗨亚当, 我已经试过这 - ?没有运气:( 亲切的问候, Mitul – 2010-01-10 22:35:34