objective-c - 子类中 BOOL 上的 "Subscripted value is neither array nor pointer"错误

标签 objective-c c boolean subclass

我在另一个类中分配的 boolean 值上收到“下标值既不是数组也不是指针”错误。在查找了很多导致此错误的原因之后,我不确定如何将它与我的联系起来。我正在使用 Cocos2D 库,但我认为这与此无关。

在另一个类中,这是我的属性接口(interface)。在本示例中,只需将其称为 ClassA:

#import <Foundation/Foundation.h>
@interface ClassA : NSObject {
@public

    @public
        BOOL _deactivateLabelToggle;

}

@property(nonatomic, assign) BOOL deactivateLabelToggle;

.m

#import "ClassA.h"

@implementation ClassA
@synthesize deactivateLabelToggle = _deactivateLabelToggle;

BOOL _deactivateLabelToggle[100];

-(id) init{
    self = [super init];
    if (!self) {
        return nil;
    }

    return self;
}

- (void) dealloc{

    [super dealloc];

}   


@end

我的主类标题

#import "ClassA.h"
@class ClassA;

@interface MainClass : CCLayer {

    ClassA *classA;
}


@property(nonatomic, retain) ClassA *classA;

@end

主类.m

#import "MainClass.h"

@implementation MainClass

@synthesize classA;

-(id) init {

    if( (self=[super init] )) {

          classA = [[ClassA alloc] init];

          classA.deactivateLabelToggle[i] = 0; // <---- Error here

    }
    return self;
}

最佳答案

你的 deactivateLabelToggleClassA 中具有此声明的属性(property):

@property(nonatomic, assign) BOOL deactivateLabelToggle;

您在 // <---- Error here 上访问line 确实既不是数组也不是指针。简单 BOOL变量不能被下标。

如果您打算引用全局文件 BOOL ClassA.m 中的数组文件,你不能用合成属性来完成它(类型需要是 BOOL* 而不是 BOOL )。

关于objective-c - 子类中 BOOL 上的 "Subscripted value is neither array nor pointer"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285610/

相关文章:

ios - 从 swift ViewController 发送消息到 Objective C ViewController

c - STDERR 重定向到日志文件在删除日志文件时中断

ios - 多重过滤 Swift 的 boolean 语句

c++ - 在 C++ 中存储 n 位的 vector<bool> 的大小(以字节为单位)

c - 删除 BST 中的节点而不具有指向其父节点的指针

swift - 我正在尝试为 Swift 3 更新我的 for 循环,但我无法弄清楚。我不断收到错误

objective-c - 填充 map View 时如何设置两种不同的图钉颜色

ios - 拾取和弹出力触摸手势有时不起作用

objective-c - 在没有抗锯齿的情况下调整 CGImageRef 的大小

c++ - 是否可以将线程执行转移到另一个线程?