我希望在B类中拥有@property A类,在A类中拥有@property B类。
这是我的情况:
A类(继承SNCNode):
-in classA.h:
@class classB;
@property classB foo1;
@end
-in classA.m:
#import "classB"
B类(继承SCNNode):
-in classB.h:
#import "classA"
@property classA foo2;
@end
-in classB:
#import "classA"
MainViewController: -in MainViewController.m:
ClassB *b = [[ClassB alloc] init];
b.foo2.foo1 = ...;
但是当我想通过我的属性foo2在B类中设置属性foo1时,我得到了一个异常: NSInvalidArgumentException - 无法识别的选择器发送到实例
我的意思是(在B级): self.foo2.foo1 = ...;
如果可能的话,如何解决?
[编辑] 例外:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SCNNode setMyZombie:]: unrecognized selector sent to instance 0x15e8b530'
*** First throw call stack:
(0x27b505f7 0x35604c77 0x27b55abd 0x27b53999 0x27a84b88 0x72963 0x6ea01 0x2aff846d 0x2aff81dd 0x2affe0a7 0x2affbaff 0x2b065d91 0x2b257dc1 0x2b25a219 0x2b264ac9 0x2b258abb 0x2e2700c9 0x27b16ffd 0x27b162c1 0x27b14a5f 0x27a61b31 0x27a61943 0x2b05c8f7 0x2b0576f1 0x75639 0x35ba0aaf)
libc++abi.dylib: terminating with uncaught exception of type NSException
答案 0 :(得分:0)
目前还不清楚你的问题是什么,这是猜测:
您可以使用@class <name>;
在Objective-C中转发声明一个类。例如,在B.h
:
@class A; // forward declare A
@interface B
@property A foo2
@end
在A
和B
的实施中,您应该导入两个标题。
HTH