#在.m而不是.h中导入iAd

银行

有什么办法可以#import在.m文件而不是.h文件中?问题是,我需要指定视图控制器ADBannerViewDelegate在.h文件中,并且不能识别是否iAd将其导入到.m文件中。有什么办法解决这个问题,还是我#import iAd每次#import查看控制器都必须坚持

安德鲁

是的。您可以将所有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...

苹果的文档在进一步解释类扩展方面做得很好。在这里查看它们


同样值得注意的是,随项目自动创建了一个特殊文件,称为“预编译头”。您可以在此文件中导入要在整个项目中使用的其他类,这样就不必在每个类中手动导入它们。

以下是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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中导入本地模块-ImportError:不是名为*的模块

在webpack配置错误中导入uikit框架“ UI。$不是函数”

无法在jupyter中导入matplotlib.pyplot(但不是ipython)

在Python中导入分支的模块,而不是已安装的模块

角度,只是从库中导入组件而不是整个库模块

“创建NSManagedObject子类”创建.h和.m而不是.swift文件

对导入模块感到困惑。模块不是从同一文件夹中导入的||?

如何在 Rollup 中导入本地文件系统路径而不是 node_module?

在React Native中导入外部js文件时,undefined不是对象

Kubernetes ConfigMap:从文件中导入多个值而不是一个?

在eclipse中导入scala.swing._,给出错误,它不是包scala的成员

在 ngx-bootstrap 中导入组件会引发“不是已知元素”错误

类不是Angular模块-仅在IntelliJ / Webstorm中导入本地构建的Angular库时

获取“外部表不是预期的格式”。尝试在SSIS中导入Excel文件时出错

如何在React中导入多个图像?我有对象而不是路径

在KDevelop中导入cmake项目时,专门使用make而不是ninja

当我在 cmd 中导入 discord 而不是在 vs code 中时出现语法错误

如何将 Textencoder 作为全局访问,而不是从 util 包中导入?

如何在vue.js项目的main.js文件中导入js类并在所有组件中使用它,而不是在每个组件中导入?

在django-import-export中导入m2m关系

在QT中导入没有.lib或.h的DLL

在 HH:MM:SS 中显示倒数计时器而不是在 Javascript 中的 H:M:S

如何在yaxis matplotlib中添加文本“ H_m”而不是100%?

C#中的MS Chart中的#VALX值不是以“ M / d H:mm”格式显示

当我的jtextfield写入了“ <dynamic>”而不是我从文件中导入的文本时,这意味着什么?

目标c-导入.m和.h文件-它的作用

字符串2h的持续时间,而不是2h0m0s

我怎样才能在我的项目中一次在meteor 中导入 npm 模块而不是在每个页面上导入?

如何仅通过Webpack导入_global.scss文件一次,而不是在每个.scss文件中导入一次?