实现功能:

1、能通过Cora Location获取地址信息

2、用户获取地址信息后能编辑相关信息

3、使用Core Data保存数据

4、使用MapKit,在Map上显示标记的位置,并可以编辑位置信息

5、能启用拍摄功能添加图片

收获一:

在iOS8里使用Cora Location获取地理位置请求不弹出窗口的解决办法

1、需要在info.plist文件里创建一个string类型的键:NSLocationWhenInUseUsageDescription

2、在初始化CLLocationManager后,调用requestWhenInUseAuthorization方法获得请求。

如图:

收获二:

// 触碰界面其他位置时关闭虚拟键盘

在viewdidload中添加:

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)];

gestureRecognizer.cancelsTouchesInView = NO;

[self.tableView addGestureRecognizer:gestureRecognizer];

再添加方法:

- (void)hideKeyboard:(UIGestureRecognizer *)gestureRecognizer

{

CGPoint point = [gestureRecognizer locationInView:self.tableView];

NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];

if (indexPath !=nil && indexPath.section == 0 && indexPath.row == 0) {

return;

}

[self.descriptionTextView resignFirstResponder];

}

当用户滚动文本框时关闭键盘

收获三:

使用HUD完善用户交互体验,达到一个反馈的效果

思路:

1、写一个自定义的视图类

2、点击按钮时显示该视图

收获四:

// 以下代码用于加载之前所定义的数据模型,并连接到一个SQLite数据存储中。
// 实际上任何采用Core Data的应用,以下代码的内容都是相同的。

  1. - (NSManagedObjectModel *)managedObjectModel
  2. {
  3. if (_managedObjectModel == nil) {
  4. NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"DataModel" ofType:@"momd"];
  5. NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
  6.  
  7. _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
  8. }
  9. return _managedObjectModel;
  10. }
  11.  
  12. - (NSString *)documentsDirectory
  13. {
  14. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  15. NSString *documentsDirectory = [paths lastObject];
  16. return documentsDirectory;
  17. }
  18.  
  19. - (NSString *)dataStorePath
  20. {
  21. return [[self documentsDirectory] stringByAppendingPathComponent:@"DataStore.sqlite"];
  22. }
  23.  
  24. - (NSPersistentStoreCoordinator *)persistentStoreCoordinator
  25. {
  26. if (_persistentStoreCoordinator == nil) {
  27. NSURL *storeURL = [NSURL fileURLWithPath:[self dataStorePath]];
  28. _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
  29. initWithManagedObjectModel:self.managedObjectModel];
  30. NSError *error;
  31.  
  32. if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
  33. NSLog(@"Error adding persistent store %@,%@",error,[error userInfo]);
  34.  
  35. abort();
  36. }
  37. }
  38. return _persistentStoreCoordinator;
  39. }
  40.  
  41. -(NSManagedObjectContext *)managedObjectContext
  42. {
  43. if (_managedObjectContext == nil) {
  44. NSPersistentStoreCoordinator *coordinator = self.persistentStoreCoordinator;
  45.  
  46. if (coordinator != nil) {
  47. _managedObjectContext = [[NSManagedObjectContext alloc] init];
  48. [_managedObjectContext setPersistentStoreCoordinator:coordinator];
  49. }
  50. }
  51. return _managedObjectContext;
  52. }

收获五:

关于NSManagedObjectContext对象

该对象将用于和Core Data进行沟通。通常我 们将其描述为“scratchpad”-暂存器。我们首先对context对象进行修改,然后调用其save方法将相关的变化信息永久保存到数据存储中。这就意味着所有需要保存到Core Data中的对象都需要有一个到NSManagedObjectContext对象的引 。

收获六:

手动添加pch文件(宏定义)过程

可参考http://www.cnblogs.com/mawenqiangios/p/5195866.html

但最重要的是要注意文件的路径!

使用宏定义,简化代码。

收获七:

IOS 8.0中修改底部TabBar的颜色

在所关联的TabBarController.m中

- (void)viewDidLoad

{

[super viewDidLoad];

self.tabBar.tintColor=[UIColor yellowColor];

}

收获八:

当你的程序需要手写控件代码时,记得把Auto Layout取消掉!

当完成程序的功能代码后,慢慢去完善App的UI,使之更加美观,吸引用户!

【MyLocations】标记位置App开发体会的更多相关文章

  1. 【Hybrid App】Hybrid App开发实战

    [引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员, 技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越 ...

  2. 20个可以帮你简化iOS app开发流程的工具

    这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是 ...

  3. NativeScript的开发体会

    上个月开始,国内的主流技术网站开始在推荐NativeScrpit,"js+xml写跨终端app"."原生体验挡不住",很多网站都拿这个当做宣传NativeScr ...

  4. iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具

    如果想进入移动app开发这个领域,你总能从别的开发者或者网上或者书上找到各种各样的方法和工具,对于新手来说,还没有摸清门路就已经陷入迷茫了.这里推荐20个可以帮你简化app开发流程的工具.很多开发者都 ...

  5. Hybrid App开发实战

    Hybrid App开发实战 作者 李秉骏 发布于 九月 04, 2013 | [引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员 ...

  6. 苹果版App开发心得

    这几个月中做的工作包括网站开发.安卓App开发和苹果App开发,前两者用的语言都是我熟悉的java,故苹果知识的学习,较安卓知识的学习,多出「语言基础」一块,其他方面差不多. 之前发过安卓那篇,如感兴 ...

  7. SharePoint Server 2013开发之旅(三):为SharePoint Server配置App开发、部署、管理环境

    上一篇我讲解了如何利用微软提供的Office 365开发人员网站,进行在线的SharePoint App开发,这当然是不错的一个选择,因为你可以快速地进行开发和调试.(仅仅针对App开发而言).但是, ...

  8. App开发到App Store上架,发布流程。

     http://blog.csdn.net/wojsg001/article/details/12005887 App开发到App Store上架,发布流程. 分类: IOS2013-09-25 11 ...

  9. html5 app开发重大消息-腾讯在技术端推进Html5生态发展

    中新网5月3日电 日前,腾讯正式发布腾讯浏览服务(Tencent Browser Service,以下简称TBS),宣布为合作伙伴提供整合腾讯底层技术.内容框架.广告体系以及大数据等多方面能力的升级浏 ...

随机推荐

  1. 移动APP服务端API设计应该考虑到的问题

    2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站那样所取代, 不但如此,越来越多的传统应用.网站也都开始制作自己的移动APP,也就是我们常说的IOS客户端.android客户端. ...

  2. [反汇编练习]160个CrackMe之001

    [反汇编练习] 160个CrackMe之001. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  3. 关于python中使用mongodb模块,save和insert的小问题

    今天写python脚本的时候发现这样一个问题: import os , string , datetime ,pymongo; conn = pymongo.Connection("127. ...

  4. jQuery live与bind的区别

    平时在使用jQuery进行AJAX操作的时候,新生成的元素事件会失效,有时候不得不重新绑定一下事件,但是这样做很麻烦.例如评论分页后对评论内容的JS验证会失效等.在jQuery1.3之前有一个插件会解 ...

  5. 【Mysql】安装 mysql-5.7.5 指南

    因为同学需要安装mysql,安装过程,一路百度,在这里记录一下步奏.以后还会用到. 1.mysql-5.7.5-m15-winx64.zip下载 官方网站下载地址:http://cdn.mysql.c ...

  6. C 的 coroutine 库 via 云风的 BLOG

    今天实现了一个 C 用的 coroutine 库. 我相信这个东西已经被无数 C 程序员实现过了, 但是通过 google 找了许多, 或是接口不让我满意, 或是过于重量. 在 Windows 下, ...

  7. Python easy_install

    系统中有高版本的Python, 直接pip3 install ipcalc安装,都是装到高版本的Python 系统默认的Python是2.7.6,现在想装到默认版本中,可以使用easy_install ...

  8. 打印Ibatis最终的SQL语句

    在项目开发时都大家都希望将SQL在后台打印出来,以帮助开发以及后续的bug修改.如果用JDBC那么可以方便的打印,可使用ibatis就不知道怎么办了,最近在网上找了一段log4j的配置可以很保姆的处理 ...

  9. 典型的 SQL 注入过程(转)

    无意间发现某站点存在 SQL 注入漏洞,于是利用这个漏洞提权并获取服务器控制权.这个案例很典型,像是教科书式的典型入侵步骤,下面就以这个案例展示从 SQL 注入到获取目标服务器控制权限的全过程. 发现 ...

  10. Delphi 利用TComm组件 Spcomm 实现串行通信

    Delphi 利用TComm组件 Spcomm 实现串行通信 摘要:利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而串口通信是这个过程中必须解决的问题之一.本文在对几种常用串口通信 ...