我目前有NSXMLParser在我的viewcontroller中工作。我想創建一個新的類,它將有2個數據元素作爲屬性並執行所有的xml解析。我遇到的問題是讓新類在完成解析時「警告」父級,等等。因此,viewcontroller(父級)可以關閉活動指示器,然後使用該信息更新視圖。像引用父對象
[myParent jobCompleted];
如何引用初始化對象的父對象。我可以設置該類的自定義通知,以便我可以創建一個觀察者來監視它嗎?
我目前有NSXMLParser在我的viewcontroller中工作。我想創建一個新的類,它將有2個數據元素作爲屬性並執行所有的xml解析。我遇到的問題是讓新類在完成解析時「警告」父級,等等。因此,viewcontroller(父級)可以關閉活動指示器,然後使用該信息更新視圖。像引用父對象
[myParent jobCompleted];
如何引用初始化對象的父對象。我可以設置該類的自定義通知,以便我可以創建一個觀察者來監視它嗎?
在缺乏更多的信息,我將假定你實現出頭..
所以我想你有你的NSXMLParser委託(實現NSXMLParserDelegate協議)做所有的分析..對不對?
所以委託協議指定調用的方法:
- (void)parserDidEndDocument:(NSXMLParser *)parser
如果您實現您的委託時,該文檔已被解析,你就知道了。所以現在你需要告訴你的視圖控制器關於這個事件。基本上有兩種方法來做到這一點。您可以在NSXMLParserDelegate和viewcontroller之間建立一個「硬」連接。這基本上是通過指定該特定視圖控制器的屬性並在分配NSXMLParserDelegate對象時將該屬性設置爲指向視圖控制器來完成的。 然後你就可以在parserDidEndDocument委託方法將消息發送到「父」
- (void)parserDidEndDocument:(NSXMLParser *)parser{
[viewcontroller jobCompleted];
}
另一種方式是採取委託模式的優勢,並指定NSXMLParserDelegateDelegate協議(否則或命名的東西) 。這可能是這個樣子:
@protocol NSXMLParserDelegateDelegate
-(void)parserDidEndDocument:(NSXMLParserDelegate *)parserDelegate;
@end
,然後作出委託財產的NSXMLParserDelegate
@interface NSXMLParserDelegate : NSObject<NSXMLParserDelegate>{
id<NSXMLParserDelegateDelegate> _delegate;
}
@property (assign) id<NSXMLParserDelegateDelegate> _delegate;
@end
記得合成它在.m文件。
這樣做的後一種方式會給你一個更多的失去聯繫,從而更容易移動的東西。
希望它有助於..否則讓我知道...如果我完全錯了這裏的傢伙 - 讓我知道=)
我試圖基本上硬編碼。所以當我從ABC內部創建一個新的對象XYZ時,我可以在XYZ內引用ABC – SonnyBurnette 2009-09-08 23:52:42