ArcGIS Runtime SDK for iOS开发系列教程(3)——Objective-C语法基础
来源:互联网 发布:mac如何修改磁盘名称 编辑:程序博客网 时间:2024/05/22 07:07
首发地址:http://www.cnblogs.com/esrichina/archive/2012/10/25/2671149.html
Objective-C这门语言是由Brad Cox和Tom Love于1980年在Stepstone发明的。它是给C语言添加了面向对象的特性,与C语言完全兼容。目前,主要用于苹果的Mac OS X和iOS平台的开发。在2012年10月世界开发语言排行榜中Objective-C稳居于第三位。
使用@interface,@implementation,@end等关键字来声明和实现类,@interface gisxyViewController:UIViewController表明该类继承自视图控制器类UIViewController;
使用#import代替#include,避免同一个头文件被包含多次;
@property与@synthesize关键字是配对使用的,@property用来让编译好器自动生成与数据成员同名的方法声明。@synthesize则是用来生成对应声明方法的实现。类似于其他语言的setter/getter方法。其中@property(retain,nonamtic参数)代表了不同的赋值方式、读写方式等,跟内存管理相关,具体的大家可以参考google、百度。
@IBOutlet关键字用来声明输出口(插座),输出口就是应用中跟界面交互相关的实例变量,如MapView,Button等,推荐在属性声明中使用IBOutlet关键来实现。如@property (retain,nonamic) IBOutlet AGSMapView *mapView;
注:以IB(Interface Builder)开头的关键字IBOutlet and IBAction 都是与界面编辑器相关的,与编译器无关。
•方法
方法声明:
-(
void
) sum:(
int
)a and: (
int
) b; //带参数方法
-(
double
) convertToNum;
可以使用关键字IBAction声明,如(IBAction)opacitySliderValueChanged:(id)sender;
方法实现:
-(
void
) sum:(
int
)a and: (
int
) b
-(
double
) convertToNum
return
1.0;
[实例 方法];或[类名 方法名]; 如[self.mapview addMapLayer:tiledLayer WithName:@"Tiled Layer"];
Objective-C语言允许在一个方法调用中嵌套另一个方法,比如:[NSString stringWithFormat:[test format]];
•协议
- (void)requiredMethod;
@optional
- (void)anOptionalMethod;
- (void)anotherOptionalMethod;
@required
- (void)anotherRequiredMethod;
@end
•内存管理
iOS中不支持垃圾自动回收,对于内存管理应该遵循黄金法则
简单理解就是:如果对一个对象使用了alloc,copy,retain,那么你必须使用相应的release或autorelease;
对于release比较好理解,autorelease其实就是系统会自动将我们的Objective-C类收集到一个自动释放池NSAutoreleasePool中,当池子销毁时,再将这些类统一销毁。在main函数中系统会默认的创建这样的自动释放池NSAutoreleasePool,当然,我们也可以在程序中来创建和销毁,将一个类使用autorelease后,系统会将该类收集于离它最近的pool里面(栈顶)。
- ArcGIS Runtime SDK for iOS开发系列教程(3)——Objective-C语法基础
- ArcGIS Runtime SDK for iOS开发系列教程(0)——PPT分享(iOS历史、Objective-C语法、SDK介绍)
- ArcGIS Runtime SDK for iOS开发系列教程(1)——开发前准备
- ArcGIS Runtime SDK for iOS开发系列教程(2)——MapViewDemo解析
- ArcGIS Runtime SDK for iOS开发系列教程(5)——要素信息的绘制
- ArcGIS Runtime SDK for iOS开发系列教程(7)——GeometryService与GeometryEngine使用
- ArcGIS Runtime SDK for iOS开发系列教程(8)——Geoprocessor使用
- ArcGIS Runtime SDK for iOS开发系列教程
- ArcGIS Runtime SDK for iOS开发系列教程(6)——Tasks使用的一般流程
- 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
- ArcGIS Runtime SDK for iOS开发系列教程(4)——如何让你的iOS应用具有GIS能力
- ArcGIS SDK for iOS开发系列教程
- ArcGIS Runtime SDK for iOS开发介绍
- 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型
- 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用
- 《ArcGIS Runtime SDK for Android开发笔记》——翻译:ArcGIS Runtime SDK for Android 10.2.7发布
- ArcGIS Runtime SDK for Android教程——(一)介绍以及环境搭建
- ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
- 【蓝桥杯】基础练习 十六进制转八进制
- unix高级环境编程 例子 代码实现练习 第六章:系统数据文件和信息
- 苹果手机游戏天天酷跑如何充值
- jqueryui 1.8.19引用顺序(及var basePrototype = new base()错误)
- Multi Data Center Replication: Architecture
- ArcGIS Runtime SDK for iOS开发系列教程(3)——Objective-C语法基础
- 一些图像处理函数用法
- 银行柜台业务调度系统
- HDU 2149 Public Sale(巴士博弈)
- 封装a.64p成.x64p达芬奇工具链的建立(工程编译步骤)g
- CareerCup How to find medium of 1 billion numbers across N distributed machines efficiently?
- 初识UML
- Regional_2011_H Holiday's Accommodation
- 指针,比特位操作