2013-01-23 29 views
0

我正在研究Objective-C,我需要將self的引用傳遞給子對象。例如在Java中,如果我要在一個方法中執行此操作,我可以說room.place(this); 如何在Objective-C中執行類似操作。我知道我可以通過self作爲方法參數,但子對象需要#import另一個類,當他們都相互導入時,我開始得到錯誤。任何幫助,將不勝感激。Objective-C - 將自我傳遞給子對象

+1

您可以在.m文件中編寫#import,而不是在子類中使用.h。不會有任何問題 – Sumanth

+3

1)您將需要在至少一個頭文件中使用正向聲明2)這是一個糟糕的設計,您應該使用委託。 – Perception

回答

4

如果兩個類需要導入其他頭文件,則可以使用正向聲明。

其工作原理是在孩子頭文件中,可以設置它就像這樣:

@class MyParentClass; // This is the forward declaration. 

@interface MyChildClass 
@property (nonatomic, strong) MyParentClass *parent; 
@end 

在孩子.m文件,你會#import "MyParentClass.h"如常。在MyParentClass.h中,您可以只是#import "MyChildClass.h"

+0

這看起來好像會起作用。前向聲明從來不是我學到的東西,但這是有道理的。 – Slayter

1

你不要#import一類。你一個文件 - 總是一個頭文件。每個類的.m文件都應該導入其他類的.h文件,它會正常工作。