我有一个NSDictionary
包含 (key,value) 对 (byte, Custom Class) where byte
is 的对象typedef unsigned char byte
。
以下是我的代码
在Mos6502.h
@interface Mos6502 : NSObject {
@private
Instruction *currentInstruction;
}
@property NSDictionary *instructions;
在Mos6502.m
,在init
方法中,我用一个表示指令操作码的字节(无符号字符)填充字典,该值是指令类的一个实例。像下面这样
instructions = [NSDictionary dictionaryWithObjectsAndKeys:
0x00, [[BRK alloc] init],
// rest of the instructions
nil];
其中 BRK 和其他指令类继承自一个名为 Instruction 的基类。
在同一个文件中,但在我需要获取当前指令的方法中,以下行给了我错误:
currentInstruction = [instructions objectAtKey:[mem readByteAt:(PC++)]];
带有以下错误消息,
Implicit conversion of 'byte' (aka 'unsigned char') to 'id' is disallowed with ARC
当我尝试输入而不是[mem readByteAt:(PC++)]
数字时,0x00
我不再收到错误消息。
为什么我会收到此错误?