iOS后台获取地理位置并且上传到服务器
0有时候需要获取手机的地理位置,当程序关闭的时候,也可以获取地理位置并且上传到服务器端。苹果在后台可以运行的程序,只有三种,一个是声音,一个是获取地理位置。下面主要说一下在后台获取地理位置,并且定时发送到服务器端。
实现非常简单,首先在info.plist中添加属性:
通过下面的代码获取地理位置:
iOS App通过iTunes进行文件交换
0最近一个项目要通过itunes同步数据,要让iOS程序支持iTunes文件交换其实很简单,只需要在程序的Info.plist里增加一个键:UIFileSharingEnabled(Application supports iTunes file sharing),赋值YES。
程序运行,完了就可以通过itunes上传文件了。
上传完了,就可以通过下面代码获取文件了:
NSFileManager *manager = [NSFileManager defaultManager];
NSString *dbPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@”download.db”];
NSLog(@”file=%@”,dbPath);
if ([manager fileExistsAtPath:dbPath]) {
NSLog(@”file is exists”);
}
源代码:http://easymorse-iphone.googlecode.com/svn/trunk/ShareApp/
判断ios中是否安装了某些软件
0有时候我们想要获取到iphoen手机中安装了那些应用软件,苹果没有提供这方面的api,似乎也是不允许的。如果想要准确的通过程序控制和发现本地安装的应用,目前只能在破解版的ios上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。
下面介绍根据应用的app的唯一number,通过
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"321BoomHDFree://"]]这个方法判断手机中是否存在这个应用。
同时还要在info.plist中添加相应的配置:
如果返回YES则表示此应用在手机中安装过,反之则没有安装过.
还有一种,就是判断手机中有那些软件处于运行等待状态:
NSArray * processes = [[UIDevice currentDevice] runningProcesses];
for (NSDictionary * dict in processes){
NSLog(@”%@ – %@”, [dict objectForKey:@"ProcessID"], [dict objectForKey:@"ProcessName"]);
}
源代码:http://easymorse-iphone.googlecode.com/svn/trunk/locationTest/
旧项目在Xcode 4.1下不能正常编译
0自从系统换上了Lion下的xcode 4.1版本,有时候旧项目不能正常编译,一直报LLVM GCC sqlite数据库错误,错误信息如下:
/usr/include/sqlite3.h:4532: error: storage class specified for parameter ‘sqlite3_vtab’
/usr/include/sqlite3.h:4532: error: storage class specified for parameter ‘sqlite3_vtab’
in “sqlite.h” file, SQLITE_API int sqlite3_enable_shared_cache(int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_2_0, __IPHONE_5_0);
the error is;
做如下修改即可:用#import <sqlite3.h>替代#import "/usr/include/sqlite3.h"
ios5 JSON数据分析
0在Iphone利用JSON传递数据,展示在Table界面中,介绍过利用第三方库,实现JSON数据的解析,在ios5 新特性中,添加了JSON数据解析。下面详细介绍一下ios5中JSON数据怎么解析。
首先是获取数据:
dispatch_async(kBgQueue, ^{
NSData *data=[NSData dataWithContentsOfURL:kLatestKivaLoansURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
其中几个参数设置:
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
#define kLatestKivaLoansURL [NSURL URLWithString:@"http://api.kivaws.org/v1/loans/search.json?status=fundraising"]
最后数据分析:
-(void)fetchedData:(NSData *)responseData
{
NSError *error;
NSDictionary *json=[NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSLog(@”==%@”,json);
}



