2 u011338675 u011338675 于 2014.11.01 16:25 提问

想往一个数组里面添加元素,为什么添不进
 -(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

5个回答

xiaofei125145
xiaofei125145   2014.11.05 10:29

self.SymbloStack 初始化了么
找找看看你 是否 调用了 self.SymbloStack = [NSMutableArray array]; 类似的 初始化语句 ,如果 调用这个方法之前 没有 初始化 数组 当然 添加 不进去了

xiaofei125145
xiaofei125145 初始化 的 地方 ,和 这个 pushSymbolStack: 哪个 先 执行 ? 如果执行书序也没问题的话,你就看下 你是不是 重写了 这个 SymbloStack 的get方法
接近 3 年之前 回复
u011338675
u011338675 有啊,我初始化了的
接近 3 年之前 回复
xiaofei125145
xiaofei125145   2014.11.13 10:32

初始化 的 地方 ,和 这个 pushSymbolStack: 哪个 先 执行 ? 如果执行书序也没问题的话,你就看下 你是不是 重写了 这个 SymbloStack 的get方法

Mr_HeroPig
Mr_HeroPig   2014.12.05 14:28

初始化SymbloStack

reylen
reylen   2014.12.09 08:52

在这个方法上打一个断点,监控一下每一步的运行,通过左下方显示找到 变量 SymbloStack,就可以知道 SymbloStack 是否已经初始化,初始化后的类型;
就可以确定是没有初始化还是初始化错误,

u013243469
u013243469   2014.12.15 18:30

首先,看看你的symbol是否为nil,
其实你把断点打在[self.SymbloStack addObject:symbol];这句,看看你的self.SymbloStack是否拥有内存地址
如果说symbol不为空,self.SymbloStack也有内存地址,这个我也就不清楚了,如果是我,我会初始化一个新的可变数组,初始化时获取self.SymbloStack的元素,然后将symbol添加到新的数组中,然后初始化self.SymbloStack获取新的可变数组元素

Csdn user default icon
上传中...
上传图片
插入图片