有没有办法在.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