【原创】关于在Objective-C中使用C语言数组的使用和NSArray的差别,以及由此可能产生的一个BUG
2014-05-06 18:07
513 查看
在正在进行的项目的开发中,我使用了C语言中最常用的数组,声明了一个全局的数组: int cArray=[16][12],但是在下午的使用中,在不知不觉中,数组越界了,在run的时候工程报错如下:
![](https://img-blog.csdn.net/20140506175816000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VvcmFubGlhb3Jhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
,当时我就蛋疼的不行,从来没有出现过这种错误啊,在Google、stackoverflow 上搜了搜,没有发现解决办法,后来把
-(id) init
{
if( (self=[superinit]))
{
//各种初始化
}
return self;
}
把里面的各种初始化屏蔽掉就好用,不屏蔽就直接死掉,而且更奇葩的是:不管用断点调试,还是 暴力调试,发现“//各种初始化”还执行了。卡了一个多小时,我逐条看.m文件里面的代码,才发现Xcode 没有报错,没有报 数组越界的错误,tnnd.把 int cArray=[16][12] -> int
cArray=[17][12] 。就好用了。
NSArray 则不一样,很显然,如何出现这种数组越界的问题,Xcode肯定能正常的报错,然后给出提示了。
额,不会组织语言,写的乱七八糟的,跟各位同仁分享了
,当时我就蛋疼的不行,从来没有出现过这种错误啊,在Google、stackoverflow 上搜了搜,没有发现解决办法,后来把
-(id) init
{
if( (self=[superinit]))
{
//各种初始化
}
return self;
}
把里面的各种初始化屏蔽掉就好用,不屏蔽就直接死掉,而且更奇葩的是:不管用断点调试,还是 暴力调试,发现“//各种初始化”还执行了。卡了一个多小时,我逐条看.m文件里面的代码,才发现Xcode 没有报错,没有报 数组越界的错误,tnnd.把 int cArray=[16][12] -> int
cArray=[17][12] 。就好用了。
NSArray 则不一样,很显然,如何出现这种数组越界的问题,Xcode肯定能正常的报错,然后给出提示了。
额,不会组织语言,写的乱七八糟的,跟各位同仁分享了
相关文章推荐
- 一.数组和指针的差别二.函数的好处以及使用函数的注意项。三.用c语言如何实现面向对象?c语言哪些点体现了面向对象。
- 关于C语言中的数组指针、指针数组以及二级指针
- 转VC6.0中gdiPlus的使用以及一个bmp转jpg的小例子[bobob原创]
- 通达OA--关于工作流强制使用电子签章中的一个BUG
- c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别
- 关于成如何使用C语言处理数组元素c[-1]=0的问题
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- Objective-C中Block语法、Block使用以及通过Block实现数组排序
- 随笔:关于使用fragment出现的一个bug
- 关于Ble通信库BluetoothKit的使用 以及可能出现的问题分析
- 关于数组的复习以及定义一个类(关于内存的理解)
- c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别
- 关于java 数组 forEach() 以及 remove 的使用
- 通达OA--关于工作流强制使用电子签章中的一个BUG
- 数组------写一个程序,产生25个随机数,对每个随机值,使用if-else 分类为大于、小于、等于
- 【关于数组两种使用的思考】C语言中用map函数和广搜解决八数码问题(noj1571)
- C专家编程—使用unsigned int可能产生的Bug(1)
- 关于 bind 你可能需要了解的知识点以及使用场景
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- 取值为[1,n-1]含n个元素的整数数组,至少存在一个重复数,即可能存在多个重复数,O(n)时间内找出其中任意一个重复数,不使用额外存储空间。