少尉

嗯。

 

使用ArcGIS API for ios开发时的一些经验与问题

使用ArcGIS API for ios开发时的一些经验与问题

上一篇 / 下一篇  2011-02-09 15:53:44 / 个人分类:iOS开发

 

http://www.gisall.com/html/71/22171.html

 

一、  经验

1、类的成员,除了可以在类内部值共享、类外部值传递以外,它还具有生存周期较长的特点。对于某些复杂结构,若将其定义成类成员,内存更容易管理。例如,ArcGIS API中的AGSMapServiceInfo,虽然作为局部变量使用,没有什么问题。但是,在内存释放时容易产生内存泄露。如将其设置为成员变量,则dealloc中进行释放则不会出现问题。

 

2C语言中的数据类型:Objective-C可以兼容C语言的数据类型和方法。但是在使用时要小心,比如布尔型:boolC语言的,其值为0,1;而BOOLObjective-C的数据类型,其值为YES NO

 

3、使用ArcGIS API绘制多边形,如果需要将绘制好的多边形提交给服务端时,则多边形的最后一个端点必须与第一个端点一致。

 

4Objective-C中包含一个特殊类NSNull,利用他可以对某些值是否为空类型进行判断,如:

if (NSNull *)typenum != [NSNull null])

这里判断的是对象的类型是否为空。当对象的类型不为空,其值为空时,使用的是nil

 

5UITableView的显示机制和以往的程序写法稍有不同,它通过回调函数,来获得表格有多少个栏目,每个栏目的名称,每个栏目包含子项的个数及子项的内容。这样的风格虽然有些别扭,但事实上是mvc的一种体现。即界面控件与数据分开。当表格界面(V)被打开时,利用回调函数(C)来GET数据(M),从而形成显示的条目。

 

 

二、  问题

1、  UIButton使用setImage:设置图片是没问题的。但是UIBarUIBarButtonItem若直接设置图片,则不能显示出来,原因不明。

现在的解决方法是构造一个UIButton

[customBtn setBackgroundImage:image forState:UIControlStateNormal];

UIBarButtonItem *addPtItem = [[UIBarButtonItem alloc] initWithCustomView:customBtn];

 

2、  当使用featureservice,从服务端获得多边形时,得到的端点顺序始终都是顺时针的。这样的数据结构,虽然比较严谨,易于管理,但是端点的编辑顺序就被忽略了。

 

3、  AGSFeatureLayer包含有属性geometryType,它描述该图层的几何类型。而在实际的使用过程中,这一属性的解析获取会有些延误。若网络速度较慢,其默认的值是point。只有在图层完全load后,或作一些成功的查询操作后,geometryType才能获得准确的数据类型。

 

4、  地图load完成的事件,好像目前还无法捕捉到。

 

欢迎大家来讨论!~

posted on 2011-10-13 16:25  moonvan  阅读(1256)  评论(0编辑  收藏  举报

导航