我有2类ClassA的:UIView的ClassB的:的UIViewController
我在ClassA的一个UIButton
该按钮在头和作为A的@property声明
UIButton *selectBtn;
}
@property (nonatomic, strong) UIButton *selectBtn;
在一类的.m文件按钮被初始化并显示在屏幕
ClassB的进口ClassA的的头文件,并从中我试图设定目标,并与下面我按钮的动作
[ClassA.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
但我不断收到错误消息说“属性‘selectBtn ClassA的’不是类型的对象中找到‘’
我究竟做错了什么 ? 任何帮助或指导是非常赞赏
[ClassA.selectPicBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
使用selectPIcBtn代替selectBtn
我不知道如果我失去了一些东西,因为没有其他海报的提出这但从我看到selectBtn是ClassA的实例的属性,而不是类本身的属性。 尝试抓住一个ClassA的对象的实例,然后从该实例访问属性:
//WRONG
[ClassA.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
//Correct
ClassA *aClassAObject = [[ClassA alloc] init];
[aClassAObject.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
请记住,上面的代码只是一个例子,是不是有可能你正在寻找的对象。 如果你这样做的ClassB的对象里面你必须抓住当前正在使用由ClassB的UIViewController中的ClassA的UIView的。 通常情况下,我会创造一个ClassB的属性来访问ClassA的对象类似于您创建了一个属性一个UIButton对象的方式,但我不知道你怎么对你的类的设置没有看到的头文件。
问题就在这里。
UIButton *selectBtn;
}
@property (nonatomic, strong) UIButton *selectPicBtn;
selectBtn和selectPicBtn是不同的。 属性名应当是相同的变量名。 如果你已经申报了财产,那么你就不需要变量声明。
只有财产申报和使用它。 在初始化,初始化self.selectPicBtn = [UIButton....
在Class A