首页 > 解决方案 > 函数“UnityGetGLView”的隐式声明在 C99 中无效

问题描述

我正在尝试构建 Unity 构建,但在 xCode 中出现此错误:

[UnityGetGLView() addSubview: readerView]; 错误的接收器类型'int'

我使用 MacOS Catalina 10.15.5;代码 11.5

请帮忙!我应该怎么办?

    [NSObject cancelPreviousPerformRequestsWithTarget: self];

    if (state) {
         [self performSelector: @selector(delayedActivate:) withObject: stateAsNumber
            afterDelay: 0.1];
    }
    else {
        [self delayedActivate: stateAsNumber];
    }
}

-(void) delayedActivate: NSNumber *) stateAsNumber
{
    BOOL state = [stateAsNumber boolValue];

    if (state) {
        if (!self.activated) {
            self.activated = TRUE;
            readerView = [[ICadeReaderView alloc] initWithFrame: CGRectZero];
            [UnityGetGLView() addSubview: readerView]; // ERROR: Bad receiver type 'int'
            readerView.active= YES;
            readerView.delegate = self;
            readerView.hidden = NO;

            #if !__has_feature(obj_arc)
            [readerView release];
            #endif
        }
    }
    else {
        if (self.activated) {
            self.activated = FALSE;
            [readerView removeFromSuperview];
            readerView.active = NO;
            readerView.delegate = nil;
            readerView.hidden = YES;
        }
    }
}

标签: xcodeunity3dmacos-catalina

解决方案


好的,我修好了

获取最新版本的 InControl。该代码已经更新。确保在导入最新版本之前完全删除 InControl。然后还要确保在 Unity 中进行全新的构建,这样 Xcode 项目中就不会保留旧文件。

首先备份您的项目。然后,在您的 Assets 文件夹中应该是 InControl 文件夹。删除那个。然后转到 Asset Store(或 Package Manager,取决于 Unity 版本)并找到 InControl,更新并导入它。


推荐阅读