问题描述
- 想往一个数组里面添加元素,为什么添不进
-
-(void)pushSymbolStack:(NSString*)symbol{ if (self.SymbloStack.count!=0) { [self performOperation]; [self.SymbloStack addObject:symbol];//先判断栈内是否有运算符,如果有运算符的话,先弹出进行计算,后在入栈该运算符 } else{ [self.SymbloStack addObject:symbol];//要是栈内没有任何运算符的话,直接入栈 NSLog(@"%@",self.SymbloStack.lastObject); }
}
可是在我多次调用这个函数,无论怎么样NSLog出来的始终是null
解决方案
self.SymbloStack 初始化了么
找找看看你 是否 调用了 self.SymbloStack = [NSMutableArray array]; 类似的 初始化语句 ,如果 调用这个方法之前 没有 初始化 数组 当然 添加 不进去了
解决方案二:
初始化 的 地方 ,和 这个 pushSymbolStack: 哪个 先 执行 ? 如果执行书序也没问题的话,你就看下 你是不是 重写了 这个 SymbloStack 的get方法
解决方案三:
初始化SymbloStack
解决方案四:
在这个方法上打一个断点,监控一下每一步的运行,通过左下方显示找到 变量 SymbloStack,就可以知道 SymbloStack 是否已经初始化,初始化后的类型;
就可以确定是没有初始化还是初始化错误,
解决方案五:
首先,看看你的symbol是否为nil,
其实你把断点打在[self.SymbloStack addObject:symbol];这句,看看你的self.SymbloStack是否拥有内存地址
如果说symbol不为空,self.SymbloStack也有内存地址,这个我也就不清楚了,如果是我,我会初始化一个新的可变数组,初始化时获取self.SymbloStack的元素,然后将symbol添加到新的数组中,然后初始化self.SymbloStack获取新的可变数组元素
时间: 2024-08-03 17:05:17