objective c-想往一个数组里面添加元素,为什么添不进

问题描述

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

objective c-想往一个数组里面添加元素,为什么添不进的相关文章

HttpRuntime.Cache缓存一个数组供所有页面前后台调用

问题描述 如题,我想缓存一个数组ArrayListStrList=newArrayList();这个数组不会很大,最大不会超过10M,我的想法是这样的:HttpRuntime.Cache=StrList;把数组赋值给缓存前台后台都能调用HttpRuntime.Cache=""调用完毕后,把一个空值赋值给缓存,就是相当于清空缓存,便于下次再赋值再调用这样的功能:1.保证整个网站的前后台都用调用:2.在调用完之前从缓存提取的数据不会产生变化:3.缓存可以赋值和清空,便于下次再次调用.这样的

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

数组-想找到一个排列组合的算法

问题描述 想找到一个排列组合的算法 比如数组里有1-500的非连续数值, 当传入345这样一个数值进来时, 可以从数组里拿出N个数值相加得到345这个值的方案, 且要求相加数值个数最少,或最接近的组合优先获取出来 解决方案 2009年1月15日 沈阳 晴?? 为解决1月7日遇到的排列组合的难题,进行了以下题目的研究,并用C#实现了一个非递归的算法.有一个List,List中存有N个对象,要求做出这N个对象所有无序组.?数学公式:组合数=C(n1) + C(n2) + ...... + C(nn)

编程问题-我有一些思路想实现一个一维数组中的各个间隔点之间的随机提取20个数据,然后这些间隔点是按每隔一定

问题描述 我有一些思路想实现一个一维数组中的各个间隔点之间的随机提取20个数据,然后这些间隔点是按每隔一定 想在Matlab中实现对每两个间隔点之间随机提取原数组中的20个值,这些间隔点是按每隔一定点数采样出来的新数组 但是我不太懂Matlab语言不会写,谁能告诉我怎么写 解决方案 我理解的问题的解决代码如下: clear a=1:2000; b=50;%一组的数据.表示从1到50里挑20个,51到100挑20个数据,以此类推 for ii=1:40 c=randperm(b,20); x((i

c++-C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教

问题描述 C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教 大一狗求教 C++想用指针return一个数组但是调用的结果和想象一样只return了首位,求教如何才能实现调用的结果是返回的一个数组啊... 解决方案 发重了,已经找到答案了,楼上各位谢了→全局变量 解决方案二: 不需要返回,设计函数时形参用指针就行.例如: #include"stdio.h" void fun(int b[], int n) { for(int i=0;i<n;i+

thinkphp中想把数据库中取出的数据 和利用count统计出的数字合并到一个数组中

问题描述 thinkphp中想把数据库中取出的数据 和利用count统计出的数字合并到一个数组中 Array ( [0] => Array ( [paper_id] => 2 [student] => 小丸子 [subject] => 信息技术 [sj_title] => 信息考试 [paper_createtime] => 2015-10-14 13:39:08 ) [1] => Array ( [paper_id] => 2 [student] =>

Javascript中克隆一个数组的实现代码

 这篇文章主要是对在Javascript中克隆一个数组的实现代码进行了介绍.需要的朋友可以过来参考下,希望对大家有所帮助 08年一家公司JS面试题,职位是javascript工程师(赴google)   面试官问我如何克隆一个数组,当时想了下js的Object没有clone方法,java的Object有.   那怎么得到一个新数组呢?   我当时回答:用一个loop将源数组元素依次push到新数组中.这是最简单的方法,但显然不是面试官想要的答案.   最后告知我:利用Array的slice方法.

c语动态数组 的问题 把两个有序的数组合成一个数组

问题描述 c语动态数组 的问题 把两个有序的数组合成一个数组 想问下动态数组的问题,要两个有序的数组合成一个,一次性完成. #include stidio.h int main() { int *a;//是不是这里用指针,等下就可以用realloc了. int *b; int i=0,j=0,k; printf ("请输入第一个数组:n"); while ( scanf("%d",&a[i])==1&&a[i]!='n') { i++; }

c++ c语言数据结构-怎么样在C++上用new建立一个数组

问题描述 怎么样在C++上用new建立一个数组 应该叫建立动态存储区吧,主要想请教一下关于结构体的,输入一个数字怎么样建立一个长度为这个数的数组 解决方案 很简单 int n; cin >> n; int * arr = new int[n]; 如果是结构体: int n; cin >> n; S * arr = new S[n]; for (int i = 0; i < arr; i++) arr[i] = new S(); 解决方案二: new一个指针数组哪位大哥知道怎么