【问题标题】:property x not found on object of type y在类型 y 的对象上找不到属性 x
【发布时间】:2012-08-01 05:25:18
【问题描述】:

这里是新手,正在研究可编程计算器。

在模型类CalculatorBrain的接口中,我声明了

@property (nonatomic, strong) NSMutableArray *whatHappenedSinceLastClear;  

然后在实现中我也声明

-(NSMutableArray *)whatHappenedSinceLastClear
{
if(!_whatHappenedSinceLastClear) _whatHappenedSinceLastClear = [[NSMutableArray alloc] init];
return _whatHappenedSinceLastClear;
}

然后

-(double)runProgram:(id)whatHappenedSinceLastClear
{
NSMutableArray *mutableCopyOfWhatHappenedSinceLastClear;
if ([program isKindOfClass:[NSArray class]]) {
    mutableCopyOfWhatHappenedSinceLastClear = [whatHappenedSinceLastClear mutableCopy];
}
return [self popOffProgramStack:mutableCopyOfWhatHappenedSinceLastClear];
}

但是在ViewController中,当我声明

-(IBAction)testPressed:(id)sender
{
CalculatorBrain *brain = self.brain;   
brain = [[CalculatorBrain alloc] init];
NSMutableArray *program = brain.whatHappenedSinceLastClear;
[brain runProgram:program];
}

NSMutableArray *program = brain.whatHappenedSinceLastClear; 行中,我收到一条消息说“在'CalculatorBrain *' 类型的对象上找不到属性'whatHappenedSinceLastClear'。

我做错了什么?

【问题讨论】:

  • 您是否在视图控制器实现中包含了 CalculatorBrain.h?
  • 唉,我确实在实现中包含了 CalculatorBrain.h,我遵循了建议但没有成功。 :( 我将发布一个后续问题,包括我的大部分代码,希望我做错了什么而不是我正在处理一个错误,因为在这一点上,当我仍然非常新手,无法分辨出其中的差异,这确实妨碍了我的学习能力。

标签: objective-c ios5 xcode4.3


【解决方案1】:

试试这个: 替换:

NSMutableArray *program = brain.whatHappenedSinceLastClear;

通过

NSMutableArray *program = [brain whatHappenedSinceLastClear];

在brain.h中

-(NSMutableArray *)whatHappenedSinceLastClear;

这应该可以。

【讨论】:

  • 应该没有区别,只是规避了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-27
  • 2012-03-04
  • 1970-01-01
  • 2023-03-22
  • 2019-06-25
  • 2021-06-30
  • 2012-07-31
相关资源
最近更新 更多