iOS
_JerryChen
这个作者很懒,什么都没留下…
展开
-
应用和视图的生命周期
在IOS中,AppDelegate是应用程序的委托对象,它继承了UIResponder类,并实现了UIApplicationDelegate协议。UIResponder类可以使子类AppDelegate能够成为应用程序委托对象,这种对象能够响应应用程序的生命周期。 IOS应用的不同状态以及它们彼此之间的关系,如下图所示。Not Running,应用没有运行或被系统终止原创 2013-09-18 23:37:20 · 1855 阅读 · 0 评论 -
iOS 通讯录访问(一)
Apple把通讯录存放在SQLite 3中,但是应用之间不能直接访问,也就是说我们自己编写的应用不能采用数据持久化技术直接访问通讯录数据库。为了实现通讯录数据库的访问,Apple开放了一些专门的API。出于安全考虑,iOS 6之后的应用访问通讯录,需要获取用户授权。与其他应用不同的是,通讯录对一个应用只授权一次,即便是这个应用删除后重装,也不必再次授权。Apple为开发者提供了两个框架原创 2014-02-27 20:31:40 · 2443 阅读 · 0 评论 -
iOS 通讯录访问(二)
未完待续。。。原创 2014-03-19 20:00:47 · 1832 阅读 · 0 评论 -
解决 UIBarButtonItem 移位问题
在iOS7 出来混之前,我们的项目里 NavigationBar 很多地方用到个性化的button, 经常会用以下的代码生成一个NavigationBar 中的按钮。UIButton *button = [UIButton alloc] initWithFrame:...];[button setImage: ... forState: ...];UIBarButtonIt转载 2014-07-25 16:34:16 · 2378 阅读 · 0 评论 -
iOS编程小技巧收集
1、输入字符限制在开发iOS原创 2014-04-09 20:47:12 · 1160 阅读 · 0 评论 -
利用.dSYM和.app文件准确定位Crash位置
首先,确保在release(Ad Hoc或者App Store)一个版本时,保存了对应的xxx.app和xxx.dSYM文件。其次,验证xxx.crash、xxx.app和xxx.dSYM三者的uuid是否一致。验证方法:1)查看xxx.app的uuid。[plain] view plaincopyprint?转载 2014-11-27 10:46:38 · 1036 阅读 · 0 评论 -
Core Data数据迁移与升级
如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下:1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel2.设置当前版本转载 2014-12-05 17:27:27 · 1039 阅读 · 0 评论 -
Mac OS X上使用Wireshark抓包
Wireshark针对UNIX Like系统的GUI发行版界面采用的是X Window(1987年更改X版本到X11)。Mac OS X在Mountain Lion之后放弃X11,取而代之的是开源的XQuartz(X11.app)。因此,在Mac OS X上安装Wireshark之前,需要先下载安装XQuartz。1.安装XQuartzXQuartz(XQuartz-2转载 2015-02-28 18:05:07 · 1003 阅读 · 0 评论 -
解决iOS8下ALAssetsLibrary创建相册的bug
说到ALAssetsLibrary,相信搞iOS开发的大都知道它,在iOS上做过相册相关功能的应该对这个都比较熟悉了,用它来操作访问相册是很方便的。但是,,,,自从iOS8发布后,ALAssetsLibrary在Stack Overflow上被各种讨论了。因为在iOS8上用这个库创建相册会有个bug:创建相册,手动删除它,再用这个库去创建刚被删除的相册,这个时候方法回调是不会跑fail模块的,它走原创 2015-04-03 18:40:51 · 5141 阅读 · 7 评论 -
Core Data
使用Core Data我们可以很方便实现数据存储而不用关心存储细节。在Xcode的工程模板中,有3个模板(Master-Detail Application、Utility Application和Empty Application模板)可以直接为工程添加Core Data支持。其他的模板则需要我们自己手动添加Core Data支持。我们先看一下Xcode自动生成的Core原创 2014-02-17 20:26:11 · 1606 阅读 · 0 评论 -
iOS数据持久化
iOS有一套完整的数据安全体系,iOS应用程序只能访问自己的目录,这个目录成为沙箱目录,应用程序之间禁止数据的共享和访问。访问一些特殊的应用,如:联系人应用,必须通过特定的API访问。一、沙箱目录沙箱目录是一种数据安全策略,很多系统都采用沙箱设计(如,Android系统)。沙箱目录设计原理是只能允许自己的应用访问目录,而不允许其他的应用访问。应用沙箱目录下有Do原创 2014-01-22 19:43:40 · 1453 阅读 · 0 评论 -
SearchBar的cancel按钮的焦点问题
今天在iOS项目中添加一个新的feature,其中用到了iOS提供的SearchBar。该控件用于搜索场景,非常好用,Apple把许多工作都已经封装好了,以至于用起来有点傻瓜式的感觉。在我的案例场景中,需要用到SearchBar自带的cancel按钮。当输入搜索条件点击键盘上的搜索按钮即开始search(出于XXX原因,我们抛弃了实时搜索功能),这个时候需要隐藏键盘,当searchBa原创 2014-01-14 21:06:22 · 2469 阅读 · 0 评论 -
IOS 6 UI状态保存与恢复
在IOS6中,apple提供了一些API使得UI状态保持和恢复变得很容易。我们可以在以下三个地方实现状态保持和恢复:1、应用程序委托对象;2、视图控制器;3、自定义视图;为了测试这个功能,我们定义一个简单的界面(一个UILabel和一个UITextField),测试保持和恢复textfield中的内容。首先在Interface Builder的Scene中选中V原创 2013-11-07 19:52:38 · 2549 阅读 · 0 评论 -
Objective-C 异步任务
Objective-C提供了多种不同的异步处理方式,这里主要看3种比较常用的方式:NSThread、Grand Central Dispatch与NSOperationQueue。一、NSThreadNSThread是OC提供的线程类,基于此,我们可以很方便地开辟线程。在OS X V10.5之前,该类只提供了一种开启新线程的方法(如:[NSThread detachNewThrea原创 2013-11-27 20:39:09 · 7028 阅读 · 0 评论 -
IOS 6 集合视图
IOS 6中开放了集合视图API——UICollectionView,方便了网格视图的开发。集合视图有4个重要组成部分:1、单元格,它是集合视图中的一个单元格。2、节,它是集合视图中的一个行数据,由多个单元格组成。3、补充视图,它是节的头和脚。4、装饰视图,集合视图中的背景视图。UICollectionView继承自UIScrollView。与选择器类似,集合视图也有两原创 2013-12-10 19:55:13 · 2538 阅读 · 0 评论 -
ScrollView与Keyboard协同
ScrollView对应于UIKit中UIScrollView类,是容器视图。它有两个子类——UITextView和UITableView,它们在内容超出屏幕时提供水平或垂直方向的滚动条。ScrollView的属性有很多,比较重要的与显示有关的有:contentSize、contentInset和contentOffset。1、contentSizecontentSize属性表原创 2013-12-03 21:04:16 · 2337 阅读 · 0 评论 -
屏幕旋转
在iphone官方提供的应用中,有一个计算器应用,竖屏时它是一个简单的计算器;横屏时,它是一个复杂的科学计算器。从这个计算器应用可以看出,横屏和竖屏时分别采用了不同的视图,而不是同一个视图界面元素的重新布局。这里我们的sample中,竖屏时屏幕中有3个按钮,横屏时屏幕中有4个按钮。这里我们把创建工程时生成的视图作为竖屏,那么我们需要额外创建一个横屏视图。我们有3种方式来实现原创 2013-12-05 21:16:55 · 1347 阅读 · 0 评论 -
PickerView
IOS提供了日期选择器UIDatePicker,它可以实现对日期的选择。日期选择器有4种模式:日期、日期和时间、时间和倒计时定时器。日期选择器使用比较简单,这里我们不去实现它了。有的时候我们可能需要输入除了日期之外的其他内容,比如籍贯等。IOS为我们提供了UIPickerView,它是UIDatePicker的父类。UIPickerView是非常灵活的,它的滚轮可以设定,每一个滚轮的内原创 2013-12-06 21:00:49 · 1840 阅读 · 0 评论 -
IOS 6下拉刷新
苹果在IOS 6 API中加入了下拉刷新控件;并且IOS 6之后,UITableViewController中增加了一个refreshControl属性,这个属性保持了UIRefreshControl的一个对象指针。UIRefreshControl是IOS 6为表视图实现下拉刷新而提供的类,目前该类只应用于表视图界面。UIRefreshControl的refreshControl属性与UITabl原创 2013-12-18 19:58:08 · 1252 阅读 · 0 评论 -
iOS导航模式
在我们开发一款app时,我们都会在设计阶段把应用的导航确定下来。导航指导用户使用我们的应用,如果没有导航,我们的应用就会显得很混乱。在iOS应用中,视图控制器处于重要地位。在UIKit中,视图控制器有很多种,有些负责显示视图,有些也同时兼顾导航。我们常见的视图控制器有以下几种:1、UIViewController。用于自定义视图控制器的导航。2、UINavigationCont原创 2013-12-19 20:03:28 · 3933 阅读 · 0 评论 -
表视图
在IOS中,一般情况下,我们都会以表的形式来展示数据。在表视图中,分节、分组和索引功能使我们展示的数据看起来更规整。一、概述1、表视图组成在IOS中,表视图是最重要的视图。与表视图相关的一些概念如下:(1)表头视图。表视图最上边的视图,用于展示表视图的信息,如表视图刷新信息等。(2)表脚视图。表视图最下边的视图,用于展示表视图的信息,如表视图分页时显示“更多”等信息。原创 2013-12-15 14:55:32 · 2730 阅读 · 0 评论