Archive for the Category: iOS

基于Mapbox+osrm的iOS离线导航解决方案

osrm(project-osrm.org)一个c++的route类库,他提供了osm-route方法使其作为服务器运行,同时也提供了libosrm库,供用户以API的方式使用。 由于osrm是一个纯c++的库,因此就具备了移植到iOS的可能。 同时mapbox提供的directions功能也是基于osrm的,因此可以将离线的osrm route结果直接给osrm使用,然后再给mapbox的navigator使用。 上个demo

Also posted in OpenSource Leave a comment

iOS中给WebView写入cookie

在混合模式的开发过程中,用户在NativeApp中进行了登陆,但打开WebApp的时候还需要登陆,这就会造成较差的用户体验。 如果WebApp支持使用从Cookie验证的话,可以通过在NativeApp往WebView写入cookie的方式来解决该问题。 代码如下: NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary]; [cookieProperties setObject:@”testCookie” forKey:NSHTTPCookieName]; [cookieProperties setObject:@”someValue123456″ forKey:NSHTTPCookieValue]; [cookieProperties setObject:@”www.example.com” forKey:NSHTTPCookieDomain]; [cookieProperties setObject:@”www.example.com” forKey:NSHTTPCookieOriginURL]; [cookieProperties setObject:@”/” forKey:NSHTTPCookiePath]; [cookieProperties setObject:@”0″ forKey:NSHTTPCookieVersion]; // set expiration to one month from now or any NSDate of your choosing // this makes the cookie sessionless and it will persist across web sessions and app […]

Leave a comment

苏梅岛中文离线地图App上线

下载地址:https://itunes.apple.com/us/app/su-mei-dao-zhong-wen-li-xian/id995196005?ls=1&mt=8 苏梅岛中文离线地图是一款支持中文地名和酒店标注的地图。所有数据全部打包在应用中,在离线环境在完全可用,是去苏梅岛旅游的必备工具。 主要特征包括: 1 地图数据完全离线 2 酒店全部中文标注,并提供酒店详细描述 3 景点、购物、美食、活动等重要地点中文标注 4 支持酒店查询,快速在地图上定位 5 支持景点、购物、美食、活动等信息在地图上的展示,并提供列表视图快速浏览 扫描二维码下载: 系统截图:

Also posted in ios app Leave a comment

Objective-C-HMTL-Parser解析乱码问题的解决

Objective-C-HMTL-Parser是Objective-c实现的一个Html杰解析库,地址为:https://github.com/zootreeves/Objective-C-HMTL-Parser 在使用Objective-C-HMTL-Parser解析中文网页的时候经常出现中文乱码的问题,主要问题是页面没有指定编码格式,通过下面代码指定编码格式即可解决乱码的问题: NSString * fileContent = [NSString stringWithContentsOfURL:[NSURL URLWithString:allUrl] encoding:(NSUTF8StringEncoding) error:&error]; fileContent = [fileContent stringByReplacingOccurrencesOfString:@”/><link” withString:@” charset=utf-8/><link”]; HTMLParser *parser = [[HTMLParser alloc] initWithString:fileContent error:&error];  

Leave a comment

判断NSString能否转换为数字

判断是否能够转成整形 – (BOOL)isPureInt:(NSString *)string{ if (!string) { return NO; } NSScanner *_scanner = [NSScanner scannerWithString:string]; int val; return [_scanner scanInt:&val] && [_scanner isAtEnd]; } 判断是否能转成浮点型 – (BOOL)isPureFloat:(NSString *)string{ if (!string) { return NO; } NSScanner* scan = [NSScanner scannerWithString:string]; float val; return [scan scanFloat:&val] && [scan isAtEnd]; }

Leave a comment

AFNetworking POST 请求失败问题解决

在使用AFNetworking 2.0 POST方式提交请求的时候,经常会报下面错误。 “Request failed: unacceptable content-type: text/html” using AFNetworking 2.0 这是由于服务器端返回的content-type为text/html,但客户端不认识造成的。解决方法如下: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.requestSerializer = [AFHTTPRequestSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@”text/html”];

Leave a comment

Baidu Geocoding API

如果要使用Baidu的Geocoding的API,需要引入百度官方的地图SDK,非常不方便,于是自己写了一个简单的只提供Geocoding的API。 github地址:https://github.com/barrycug/BaiduGeoCodingAPI 使用方法: self.baiduGeoCoding = [[BaiduGeoCoding alloc]initWithKey:@”key”]; [self.baiduGeoCoding geocoding:@”百度大厦” city:@”北京市” result:^(BaiduGeoCodingResult *result, NSError *error) { NSLog(@”x=%lf,y=%lf”,result.location.coordinate.longitude,result.location.coordinate.latitude); }]; CLLocation *loa = [[CLLocation alloc]initWithLatitude:39.983424 longitude:116.322987]; [self.baiduGeoCoding reverseGeocoding:loa result:^(BaiduReverseGeoCodingResult *result, NSError *error) { NSLog(@”%@”,result.formatted_address); }];

Leave a comment

“could not build module UIKit”问题的解决

在使用xcode5.1.1 编译代码的时候,偶尔会遇到”could not build module UIKit”的提示。 解决问题的方法是删除ModuleCache 文件夹: /Users/YOURUSERNAME/Library/Developer/Xcode/DerivedData/ModuleCache

Leave a comment

限制UITextView 只能输入数字

在有些情况下,需要限制UITextView只能限制输入数字,特别是在填写表格的时候,能够预防数据的错误录入,实现改功能比较简单,只需要实现 – (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@”0123456789″]; for (int i = 0; i < [ text length ]; i++) { unichar c = [ text characterAtIndex:i]; if ([myCharSet characterIsMember:c]) { return YES; } } return NO; }

Leave a comment

SpatialDBKit 介绍

SpatialDBKit 是一款iOS平台上开源得Spatial DB 工具,主要使用FMDB封装了spatialite,使用OC的方法访问sqlite,避免使用C的方式调用。 SpatialDBKit 项目地址:https://github.com/andreacremaschi/SpatialDBKit SpatialDBKit 的安装需要 automake autoconf libtool 的支持,可以使用homebrew安装 brew install automake autoconf libtool 在Pod中使用 platform :ios, ‘5.0’ pod ‘SpatialDBKit’ 如果和ArcGIS iOS SDK一起使用的话,请再编译的时候设置使用libc++,而不是libstdc++ 使用SpatialDBKit 非常简单,和FMDB类似,demo如下: SpatialDatabase *db = [SpatialDatabase databaseWithPath: [[NSBundle mainBundle] pathForResource:@”test” ofType:@”sqlite”]]; [db open]; FMResultSet *rs = [db executeQuery:@”select Name, geometry FROM Regions”]; while ([rs next]) { NSLog(@”%@”, [resultSet resultDictionary]); }

Leave a comment