Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphone-在另一个类上设置属性_Iphone - Fatal编程技术网

iphone-在另一个类上设置属性

iphone-在另一个类上设置属性,iphone,Iphone,我在类上声明了一个属性: .h @interface myClass : UIView { BOOL doStuff; } @property BOOL doStuff; .m @synthesize doStuff; 这个类是另一个类的委托。在另一个类中,我尝试设置此属性,执行如下操作 [delegate setDoStuff:YES]; 我收到一个错误,告诉我“method-setDoStuff:notfound…” 如何在类上声明属性,以便其他类可以读取和设置它们 谢谢。确保您

我在类上声明了一个属性:

.h

@interface myClass : UIView {
  BOOL doStuff;
}

@property BOOL doStuff;
.m

@synthesize doStuff;
这个类是另一个类的委托。在另一个类中,我尝试设置此属性,执行如下操作

[delegate setDoStuff:YES];
我收到一个错误,告诉我“method-setDoStuff:notfound…”

如何在类上声明属性,以便其他类可以读取和设置它们


谢谢。

确保您正在导入自定义类的标头,并且
委托
声明为该类的实例。

确保您正在导入自定义类的标头,并且
委托
声明为该类的实例。

您还可以指定setter函数位于
@属性中

@property (nonatomic,setter = setMyDoStuff,assign) BOOL doStuff;

您还可以在
@property
中指定setter函数的名称

@property (nonatomic,setter = setMyDoStuff,assign) BOOL doStuff;

您的委托是否声明为类型“id”?
要么在另一个类(指向您的MyClass)中声明其真实类型MyClass委托,要么
声明代理必须在声明中实现id的协议。

最后一种(但不是正确的方法)是类型转换它[(MyClass)delegate doStuff]。

您的委托是否声明为类型“id”?
要么在另一个类(指向您的MyClass)中声明其真实类型MyClass委托,要么
声明代理必须在声明中实现id的协议。

最后一种(但不是正确的方法)是对其进行类型转换[(MyClass)delegate doStuff]。

是否必须导入标题?如果委托已设置且正在工作(确实如此,因为我可以调用委托上的方法),为什么需要导入标头?我的意思是,如果我可以访问委托上的方法,并且setter/getter是“一种”方法,为什么其他类看不到它们?我不明白。。。顺便说一句,我已经导入了标题,错误仍然存在…我必须导入标题吗?如果委托已设置且正在工作(确实如此,因为我可以调用委托上的方法),为什么需要导入标头?我的意思是,如果我可以访问委托上的方法,并且setter/getter是“一种”方法,为什么其他类看不到它们?我不明白。。。顺便说一句,我已经导入了标题,错误仍然存在。。。