有沒有辦法在.m文件中使用#import
而不是.h文件?問題是我需要指定視圖控制器是.h文件中的ADBannerViewDelegate
,如果在.m文件中導入iAd
,它不會識別它。 有沒有辦法解決這個問題,或者我堅持不得已#import
iAd
每次我看到控制器我#import
?#導入iAd而不是.h
1
A
回答
0
是的。您可以將所有iAd代碼放入.m
文件中;你只需要使用類擴展(很常見)。類擴展,允許你聲明變量,包括委託,創建屬性等,全部來自.m
文件。
類別擴展名位於.m
文件的頂部,位於@implementation
聲明之前。
例如:
//.h
#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController
@end
//.m
#import "HomeViewController.h"
#import <iAd/iAd.h>
//The following is the class extension
@interface HomeViewController() <ADBannerViewDelegate> //add any delegates here {
IBOutlet ADBannerView *ad; //A reference to the ad
BOOL someBOOL; //You can put any variables here
}
- (void)someMethod:(id)sender;
@property (nonatomic, strong) UIView *someView;
@end
注:類擴展必須以@end
結束,然後將定期類主體如下:@implementation HomeViewController...
蘋果的文檔做好進一步的解釋類擴展。檢查出來here。
同樣值得注意的是,這是一個自動創建的項目,稱爲「預編譯頭文件」。這個文件是一個地方,你可以導入你打算在整個項目中使用的其他類,所以你不必在每個類中手動導入它們。
繼承人PCH的例子:
#import <Availability.h>
#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <iAd/iAd.h>
//Put any other classes here and you can use them from any file
#endif
如果您在項目中的文件看,在支持文件,你應該看到You-Project-Name-Prefix.pch
相關問題
- 1. 如何使用宏而不導入Xcode中的.h文件
- 2. 序言返回H = 0 + 1 + 1而不是H = 2
- 3. 導入到.h與.m
- 4. 在另一個導入.h
- 5. 導入函數而不是在開始
- 6. 爲什麼導入javax.swing。*而不是java.swing。*
- 7. 導入FirebaseAnalytics模塊而不是Firebase
- 8. 內聯WSDL而不是wsdl:導入
- 9. 「SVN導入」導入項目的內容,而不是文件夾
- 10. iAd Banner導致EXC_BAD_ACCESS
- 11. 導入Facebook的帖子,而不是隻是嵌入它們
- 12. H:導航
- 13. 無法從Tapku導入.h文件
- 14. 使用.h導入時遇到問題
- 15. 導入一個類而不導出它
- 16. 使用委託時是否需要導入.h文件?
- 17. iAd導致約束衝突
- 18. 輸入左側的引導輸入標籤(而不是頂部)
- 19. 是否喜歡導入一個類(例如導入flash.events.MouseEvent)而不是整個包的內容(例如導入flash.events。*)
- 20. 問題而導入的刊物,是不是已經在
- 21. iAd不旋轉
- 22. TypeError:d [h] .apply不是函數
- 23. 從目錄中導入模塊,而不是從已安裝的模塊導入
- 24. 根據測試導入被測模塊而不是模塊級導入?
- 25. 「創建NSManagedObject子類」創建.h和.m而不是.swift文件
- 26. 創建新的視圖控制器爲.swift而不是.h
- 27. 在datejs toString('h')在午夜顯示0而不是12
- 28. 如何讓Xcode首先打開.h而不是.m文件?
- 29. 渲染JSF h:帶p元素而不是span的消息
- 30. 何時應該使用h:鏈接而不是h:commandLink?
始終包含頭文件(.h),而不是執行文件( .M)。將其導入到您使用的每個視圖控制器中。 – Raptor
在.h中導入iAd – Kevin