C 语言和 OC 数组初始化的区别
2016-04-08 11:17
302 查看
在项目中无意中看到一段代码引起了我的注意:
UIBezierPath *tmpPath = [[UIBezierPath
alloc]
init];
CLLocationCoordinate2D coordinates[[store.polygon_coordinates
count]];
for(int i=0;i<[store.polygon_coordinates
count];i++) {
coordinates[i].latitude = [[[store.polygon_coordinates
objectAtIndex:i]
objectAtIndex:0]
doubleValue];
coordinates[i].longitude = [[[store.polygon_coordinates
objectAtIndex:i]
objectAtIndex:1]
doubleValue];
if (i==0) {
[tmpPath moveToPoint:[mapView
convertCoordinate:coordinates[i]
toPointToView:mapView]];
} else {
[tmpPath addLineToPoint:[mapView
convertCoordinate:coordinates[i]
toPointToView:mapView]];
}
}
[tmpPath closePath];
看看我红色标出来的,一开始我还以为是二元数组,仔细一看发现里面只是一个调用的方法而已,所以最终会发现其实只是一个C 数组
在看下面直接把OC的经纬度值存进去,不由得暗自叹服。
我们OC可不能这么直接就能拿着用,我们必须,先初始化才能用
NSMutableArray *a ;
a[0] =
@1;
NSLog(@"%@",a[0]);
假如你这么打印结果肯定是null
而C的初始化非常简单:
int a[10] ;
a[0] =
1;
NSLog(@"%i",a[0]);
就是第一句 就简简单单完成了对数组的初始化,换句话说,数组已经存在啦!
而OC中 NSMutableArray *a ; 这只是声明了一个数组。
UIBezierPath *tmpPath = [[UIBezierPath
alloc]
init];
CLLocationCoordinate2D coordinates[[store.polygon_coordinates
count]];
for(int i=0;i<[store.polygon_coordinates
count];i++) {
coordinates[i].latitude = [[[store.polygon_coordinates
objectAtIndex:i]
objectAtIndex:0]
doubleValue];
coordinates[i].longitude = [[[store.polygon_coordinates
objectAtIndex:i]
objectAtIndex:1]
doubleValue];
if (i==0) {
[tmpPath moveToPoint:[mapView
convertCoordinate:coordinates[i]
toPointToView:mapView]];
} else {
[tmpPath addLineToPoint:[mapView
convertCoordinate:coordinates[i]
toPointToView:mapView]];
}
}
[tmpPath closePath];
看看我红色标出来的,一开始我还以为是二元数组,仔细一看发现里面只是一个调用的方法而已,所以最终会发现其实只是一个C 数组
在看下面直接把OC的经纬度值存进去,不由得暗自叹服。
我们OC可不能这么直接就能拿着用,我们必须,先初始化才能用
NSMutableArray *a ;
a[0] =
@1;
NSLog(@"%@",a[0]);
假如你这么打印结果肯定是null
而C的初始化非常简单:
int a[10] ;
a[0] =
1;
NSLog(@"%i",a[0]);
就是第一句 就简简单单完成了对数组的初始化,换句话说,数组已经存在啦!
而OC中 NSMutableArray *a ; 这只是声明了一个数组。
相关文章推荐
- Enter键触发点击登录Chrome和火狐都兼容
- android 如何中断一个子线程
- unity3d游戏优化规范
- 高精度水题(POJ2109)
- Shell 脚本等待上一行执行完成再执行下一行的方法
- java日期工具类
- Linux wget --下载文件
- Linux wc --统计文件行数,单词数或字节数
- 18. 4Sum(35.07%)
- 对于JVM内存配置参数
- Java判断字符串是否为数字(浮点类型也包括)
- Java中类的初始化顺序
- PHP如何实现文件上传
- 几行代码搞定nodejs中的回调坑
- 计划
- centos搭建git服务器(上)
- Linux watch --检测命令的运行结果
- Linux w --显示谁登录了系统及在做什么
- Linux vmstat --监控虚拟内存,进程,CPU
- 数组名作为函数的参数传递给函数