2014-12-05 70 views
-1

我想在B類的@property A類和@property B類向前聲明屬性類A-> B,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

粘貼到確切的錯誤消息。 – 2014-12-05 03:30:20

+0

我在主帖中添加了。 – MuniekMg 2014-12-05 17:07:52

+0

@MuniekMg - 該異常表示您已將消息發送給不支持該消息的對象,例如您將'A'識別的消息發送給'B'的實例。仔細檢查你的作業,看起來你已經混淆了你的'A'和'B'。你將不得不發佈實際的代碼(縮小問題的範圍),以便任何人都能夠提供詳細的幫助。 – CRD 2014-12-05 17:20:11

回答

0

這是不完全清楚你的問題是什麼,這裏有一個猜測:

您可以轉發聲明在Objective-C一類@class <name>;。例如,在您的B.h

@class A; // forward declare A 

@interface B 

@property A foo2 

@end 

在你既A的實現和B你應該導入這兩個頭。

HTH

+0

我做到了,但是當我想通過propetry foo1設置foo1(self.object.foo2.foo1 = ...; I gon例外:終止應用程序由於未捕獲的異常像在我的問題(編輯) – MuniekMg 2014-12-05 17:06:04

+0

@MuniekMg - 這個猜測在你的問題看起來是錯誤的,請參閱主要問題的評論 – CRD 2014-12-05 17:20:57