我正在爲iphone編寫一個obj-c假庫。我需要將該庫部署到我的客戶端以供項目使用,但我不想通過我的財產進行任何通信。我想給一個頭文件以及我的客戶可以使用的庫。但是問題是這樣的:我的A類擴展了B類,B類擴展了C類。我想給A類(文件Ah)的頭部給客戶端,但是在「啊」中有類似「import Bh」的代碼,所以如果我沒有公開我的Bh,它不會在我的客戶端項目中編譯,所以C類和深層基礎類。 而且我不能暴露這些類,因爲這些會暴露我的所有結構並導致我的屬性通過。 請大家幫忙,多謝。Objective-C庫頭文件的控制
0
A
回答
1
正如Caleb回答的評論中所述,一個班級必須能夠看到其超類的@interface
。
但是,這是你可以做的。 ClassB
的接口可能非常空,除了指定的初始化程序。然後,您可以將所有內部到您的庫屬性和方法放在一個單獨的頭文件中的類別中。例如
// ClassA.h ---------------------
#import "ClassB.h"
@interface ClassA : ClassB
// stuff
@end
// ClassB.h ---------------------
@interface ClassB : NSObject
// Properties and methods on ClassB that really are public (possibly none).
@end
// ClassB+Internal.h ---------------------
#import "ClassB.h"
@interface ClassB(Internal) // "Internal" can be anything you like
@property (copy) NSString* mySecretProperty;
// etc
@end
// ClassB.m ---------------------
@interface ClassB() // Class extension
// Really secret properties and methods not to be seen outside of this file.
@property (copy) NSString* myReallySecretProperty;
@end
@implementation ClassB
@synthesize mySecretProperty;
@end
通常你會創建內部類的實現,但你實際上並不需要只要在運行時存在的方法。
+0
謝謝你JeremyP,這是個好主意。我正在努力將我的結構轉變爲這種設計模式。 – user1619301
相關問題
- 1. 控制$ http請求中的頭文件
- 2. Shape文件用的ObjectiveC
- 3. ObjectiveC MailCore郵件正文
- 4. 創建名爲.dylib從源文件的動態庫中的ObjectiveC
- 5. 從一個xib文件移動到一個視圖控制器在ObjectiveC
- 6. Android庫的頭文件
- 7. 控制檯/文件記錄器庫C++
- 8. 緩存控制頭
- 9. 靜態庫頭文件
- 10. 與頭文件配對庫
- 11. 頭文件和其他庫
- 12. 頭文件和標準庫
- 13. 移動庫和頭文件
- 14. 如何控制JSF中的http頭文件?
- 15. 閱讀控制器中的HTTP頭文件(Zend Framework)
- 16. 如何從CoreTelephony.framework獲取電話控制api的頭文件
- 17. 完全控制Python中的HTTP頭文件?
- 18. 您在哪裏設置Padrino中的訪問控制頭文件
- 19. pygame的箭頭控制
- 20. Playn的攝像頭控制
- 21. wheelnav.js的箭頭鍵控制
- 22. 控制箭頭的數量
- 23. Neo4j的訪問控制頭
- 24. 在ObjectiveC中讀取.doc(MSWord)文件?
- 25. apk文件強制下載頭文件
- 26. C++頭文件/庫文件和定義的數據庫
- 27. PC-Lint作爲庫頭文件處理頭文件
- 28. ObjectiveC - 從控制檯字符串中讀取多行(Breaks \ newLine)
- 29. 使用相同的控件控制多個攝像頭
- 30. 控制Xcode將包含哪個項目頭文件
嗨,迦勒,感謝您的幫助。但似乎@class關鍵字不能用於基類,這會報告xcode中的編譯錯誤。 – user1619301