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

メソッドは明確に定義されていますが:

MainViewController.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

MainViewController.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のポインタとして宣言されているようですCDVViewControllerMainViewControllerから派生したクラスの一部であるメソッドを呼び出していCDVViewControllerます。呼び出されるメソッドは、基本クラスではなく派生クラスの一部であるため、代わりにviewControllerポインターを 作成しますMainViewController

于 2013-08-28T10:33:59.983 に答える