08

NSString从文件内容中初始化字符串例子

    char *errorMsg;  
    NSError *error = nil;
    NSString* sql = [[NSString alloc]initWithContentsOfFile:@"db.sql" encoding:NSUTF8StringEncoding error:&error];
    if (sqlite3_exec(dataBase, [sql UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {  
        sqlite3_close(dataBase);  
    }
Tags: , ,

作者:Jock

26

IOS中的core location提供了定位功能,能定位装置的当前坐标,同时能得到装置移动信息。因为对定位装置的轮询是很耗电的,所以最好只在非常必要的前提下启动。
其中,最重要的类是CLLocationManager,定位管理。
其定位有3种方式:
1,GPS,最精确的定位方式,貌似iphone1是不支持的。
2,蜂窝基站三角定位,这种定位在信号基站比较秘籍的城市比较准确。
3,Wifi,这种方式貌似是通过网络运营商的数据库得到的数据,在3种定位种最不精确

使用方式:
1,引入CoreLocation的包,一般的默认模板里是没有的,所以需要手动导入。
2,通过启动CLLocationManager来启动定位服务,因为定位信息是需要轮询的,而且对于程序来说是需要一定时间才会得到的,所以对于lcationManager的操作大多都给委托来完成。
加载locationManager的代码: 更多详细内容 »

Tags: ,

作者:Jock

26

MKMapView提供了一套可植入的地图接口,可以让我们在应用中展示地图,并对其进行相关的操作。一般来说,我们可以指定一个展示区域,放一些标记在上面,还可以加盖一些层在上面。MKMapView依赖Google map里面相关服务(如Google Earth API等),所以地图的左下角会有Google字样。
使用:
1.MKMapView的显示
(1)创建MKMapView

CGRect rect = CGRectMake(0, 0, 320, 460);
MKMapView *mapView = [[MKMapView alloc] initWithFrame:rect];
//定义经纬度
CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude=22.5414; //纬度
theCoordinate.longitude=113.946; //经度
 
//定义显示范围
MKCoordinateSpan theSpan;
theSpan.latitudeDelta=0.01;
theSpan.longitudeDelta=0.01;
 
//定义一个区域(使用设置的经度纬度加上一个范围)
MKCoordinateRegion theRegion;
theRegion.center=theCoordinate;
theRegion.span=theSpan;//设置地图显示类型:
[mapViewsetMapType:MKMapTypeStandard];

//将mapview的显示区域设置为theRegion     [mapView setRegion:theRegion];
对于mapType,在MKTypes里有这样一段字典定义:

enum {
MKMapTypeStandard,
MKMapTypeSatellite,
MKMapTypeHybrid
};
typedef NSUInteger MKMapType;

standard:标注地图,显示街道和街道名
Satellite:卫星图片区
Hybrid:卫星图,同时在相应区域有标注了街道和街道名

更多详细内容 »

Tags: ,

作者:Jock

26

原创内容转载请注明来源http://www.hjide.com/article/630.htm

消息语法

要让一个对象做些什么的话,你需要给他发一个消息告诉他执行某一个方法。在Objective-C里, message expressions are enclosed in brackets:

[receiver message]

接收器是一个对象,消息告诉它该做些什么。在源代码里就是简单的把方法的名称以及所有的参数传递给他。当一个消息发送后,运行时系统通过接收器的指令系统发射找到这个方法。

举个例子,一条消息告诉myRect对象去执行display方法, 让这个矩形对象显示他自己的原因是:

[myRect display];方法也可以是有参数的。假设下面这个消失告诉myRect他的位置在窗口的左边是 (30.0, 50.0):

[myRect setOrigin:30.0 :50.0];

这里方法的名字是setOrigin::,有2个冒号每个表示一个参数。每个参数跟在冒号的后面。这个方法名里没有使用标签参数,这让参数的类型和作用变得难以分辨。相反的方法名应该包含一些标签来描述他们的参数。方法名中参数的标签在每个冒号之前setWidth:height:方法, 下面的例子明确表明了2个参数的作用:

[myRect setWidth:10.0 height:15.0];

       一个方法可能具有可变个数参数的情况并不少见,这些额外的参数用都好隔开跟在方法名的后面(和冒号的情况不同的是这部分并不认为是方法名)。下面的例子假设makeGroup:方法有一个必须的参数group和3个可选的参数: 更多详细内容 »

Tags: , , ,

作者:Jock

26

原创内容转载请注明来源http://www.hjide.com/article/626.htm

对象

就像对象这名字所指的一样,面向对象编程都是围绕着对象进行的。对象和数据之间是通过一系列特定的能使用和操作数据的操作联系在一起的。在Objective-C里这些特定的操作是对象的函数(方法);他们能操作的是对象的实例变量。本质上对象就是一段程序代码,这段代码包含一系列数据和一组函数。

举个例子,假设你写一个画图程序,这个程序能划线、圆、矩形、文字和位图等等,你可能会创建一个所有这些基本形状的类来给用户使用。一个矩形对象的实例应该包含这个矩形的位置,长和宽,矩形的颜色和是否填充以及矩形的线条样式。一个矩形类应该还有一些方法来设置矩形的位置、大小、颜色、填充状态和线条样式,这些方法一起影响这个矩形的展现。

       在Object-C里一个对象的实例的变量是对象的内部变量,通常你访问一个对象的状态只能通过对象的方法(你可以用scope directives来让子类或者其他对象直接访问对象实例中的变量)。其他访问对象状态的途径只能通过对象所提供的方法返回的信息。举个例子,一个矩形对象会提供表面自己大小和位置的方法。

       此外,一个对象仅能发现为他设计的方法,它不会错误的执行来自其他对象的方法。就像在C函数中的函数变量对于其他函数来说是不存在一样,对象的实例变量和方法实现对外也是隐藏的。 更多详细内容 »

Tags: , , ,

作者:Jock

26

第一章 类和对象 2
对象 2
id 3
动态造型 3
对象消息 4
消息语法 4
给nil发送消息 6
接收实例变量 6
多态 7
动态绑定 8
类 9
继承 10
NSObject类 11
继承实例变量 12
继承方法 13
覆盖一个方法 14
抽象类 14
类类型 15
静态类型 15
内省类型 16
类对象 16
创建实例 17
自定义类对象 18
变量和类对象 19
初始化类对象 21
基类的方法 22
源码中的类名 23
第二章 类定义 24
源文件
 24
类接口 25
引入接口 26
提交给其他类 27
接口的规则 27
类的实现
 28
提交给实例变量 29
实例变量的作用范围 30

 

一時興起決定翻譯下Apple的,才剛剛動手翻了一章多一點點,不知道有沒有人已經做過類似的事情了呢

Tags: , ,

作者:Jock

Switch to our mobile site