1

自从我将 iOS 项目切换到 ARC 后,我不断收到此编译器错误:

'CDViewController' 没有可见的@interface 声明选择器'setUseAgof:'

在这一行:

[self.viewController setUseAgof:false];

在这个文件中:

AppDelegate.m

#import "AppDelegate.h"
#import "MainViewController.h"
#import <Cordova/CDVPlugin.h>
#import "NSString+MD5.h"

@implementation AppDelegate

@synthesize window, viewController;

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    // (...)
    [self.viewController setUseAgof:false]; // <-- HERE
    // (...)

    return YES;
}

@end

虽然方法是明确定义的:

主视图控制器.h

#import <Cordova/CDVViewController.h>
#import <ADTECHMobileSDK/ADTECHMobileSDK.h>

@interface MainViewController : CDVViewController <ATInterstitialViewDelegate>{
    ATInterstitialView *interstitial;
}
- (void)setUseAgof:(BOOL)useAgofParam;
@end

@interface MainCommandDelegate : CDVCommandDelegateImpl
@end

@interface MainCommandQueue : CDVCommandQueue
@end

主视图控制器.m

#import "MainViewController.h"

@interface MainViewController()
    - (void)setUseAgof:(BOOL)useAgofParam;
@end

@implementation MainViewController

BOOL useAgof = true;

- (void)setUseAgof:(BOOL)useAgofParam
{
    NSLog(@"1.) Setting useAgof = %d", (int)useAgofParam);
    useAgof = useAgofParam;
}

我不明白。怎么了?


更新:

AppDelegate.h

#import <UIKit/UIKit.h>
#import <Cordova/CDVViewController.h>
#import <INFOnlineLibrary/INFOnlineLibrary.h>

@interface AppDelegate : NSObject <UIApplicationDelegate>{}

@property (nonatomic, strong) IBOutlet UIWindow* window;
@property (nonatomic, strong) IBOutlet CDVViewController* viewController;

@end
4

2 回答 2

0

确保viewController您的属性AppDelegate具有类型CDVViewController *而不是UIViewController *

于 2013-08-28T10:20:25.220 回答
0

viewController似乎被声明为 的指针CDVViewController。您正在调用一个方法,该方法是MainViewControllerCDVViewController. 被调用的方法是派生类的一部分,而不是基类,因此改为使用viewController指针 MainViewController

于 2013-08-28T10:33:59.983 回答