我在另一个类中分配的 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;
}
最佳答案
你的 deactivateLabelToggle
在 ClassA
中具有此声明的属性(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/