NSMuttable 配列から最後の要素をポップすると、実行時にクラッシュします。すべての要素を正常に取得していますが、最後の要素にアクセスするとエラーが発生します。
-(id)popOperand{
id operandObject = [self.operandStack lastObject];
if(operandObject) [self.operandStack removeLastObject];
return operandObject;
}
例:-スタックに「8」(その NSNumber オブジェクト) 「+」(その NSString オブジェクト) 2(その NSnumber オブジェクト) がある場合。
NSNumber *rightOperand = [self popOperand];
NSString *operation = [self popOperand];
NSNumber *leftOperand = [self popOperand];//when i acess 8 it shows empty array other element is getting fine;
私の質問は、この関数が他の要素に対して正常に機能しているときに、最後のオブジェクトを取得できない理由です。編集:実行時に2をポップした後、スタック(8 +)を表示しますが、ポップした後、スタック()が空であることを示します。しかし、「leftOperand」は値を取得していません。私はARCを使用していません。
詳しく教えてください。ありがとう。