iOS开发
文章平均质量分 72
xgc阳光
这个作者很懒,什么都没留下…
展开
-
IOS 发送HTTP请求报错
控制台打印错误信息:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.则需要在plist文件中原创 2016-04-26 22:17:13 · 369 阅读 · 0 评论 -
iOS程序的生命周期
iOS程序从启动到处理事件再到进入后台以及退出应用程序,这其中内部的运行机制是什么样的呢首先要了解应用程序的不同状态:Not Running:未运行状态,表明应用程序未启动;Active:活跃状态,程序运行的常规状态,在这个状态是程序在前台可以接收并处理事件;Inactive:不活跃状态,程序仍然在前台,但不处理不接收任何事件,通常该作为程序在Active与其他状态切换时短暂停留的原创 2016-05-02 13:35:40 · 437 阅读 · 0 评论 -
iOS程序启动内部过程(从点击图标到显示界面)
1.用户点击应用程序图标;2.程序执行main()函数;3.main函数中直接返回的是UIApplicationMain,所以接下来执行UIApplicationMain;4.根据UIApplicationMain中的第三、第四个参数分别设置UIApplication对象及其代理;第三个参数是UIApplication的类名或者子类名,如果为nil则默认是UIApplication,第原创 2016-05-02 10:44:51 · 2114 阅读 · 0 评论 -
iOS中的线程与进程
线程和进程的概念、并发性与并行性、多线程与多进程的比较进程是处于运行过程中的程序,是系统资源分配和调度的一个独立单位,简单的理解就是用来帮程序占据一定的存储空间的。进程拥有自己独立的位置空间,在没有经过进程本身允许的情况下,其他进程不能访问改进程的地址空间。线程是进程的一部分,它是进程中用来执行任务的单位。一个进程可以拥有多个线程,但最少要有一个主线程;每个线程不能独立执行,必须有一个父进程;线程可以拥有自己的堆、原创 2016-04-24 21:51:14 · 1070 阅读 · 0 评论 -
property中的copy属性
property的copy属性NSString为何要用copyassign和copy有什么不同深复制与浅复制的区别原创 2016-04-18 10:49:43 · 1396 阅读 · 0 评论 -
Object-C中的内存管理 MRC、ARC以及Autoreleasepool的区别
总结一下MRC、Autoreleasepool、ARC的区别内存中存在五大区域,他们分别是堆区、栈区、数据段、BSS段以及代码段。原创 2016-04-07 19:04:18 · 1775 阅读 · 0 评论 -
iOS中的三种多线程
iOS提供了三种多线程的技术:NSThread;NSOperation和NSOperationQueue;GCD1.使用NSThread创建多线程:创建NSThread线程有实力方法和类方法两种方法2.使用GCD实现多线程:相对于要手动管理线程同步安全的NSThread方法,GCD则要简单得多。GCD的核心是队列,使用GCD来实现多线程只需要创建队列,并把任务放在队列中处理。GCD的队列类型如下:3.使用NSOperation与NSOperationQueue实现多线程:NSOperation和原创 2016-04-25 10:22:50 · 633 阅读 · 0 评论 -
iOS中delegate、NSNotification和KVO的区别
在开发IOS应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers[B]怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信:1委托delegation2通知中心Notification Center3键值观察key value observing,KVO三者优缺点:delegate 的 优势 : 1.非常严格原创 2016-09-16 16:51:41 · 413 阅读 · 0 评论 -
OC对象的内存分析
先来看一段代码: NSString* s;s = [[NSString alloc] initWithString:@"hello ios"]; 这是一段最简单的字符串定义,但是看似简单,其实有很多东西可能会被忽略掉 1.这里的s其实是个指针,在oc中除了基本数据类型之外的变量类型都是指针类型,oc的对象也是通过指针进行操作的。 2. 在第转载 2016-09-17 12:46:45 · 475 阅读 · 0 评论 -
IOS蓝牙4.0使用心得
蓝牙4.0自动连接数据接收,通过手机/pad与蓝牙4.0的设备进行连接,之后设备上按对应的按键我们会收到对应的数值蓝牙断开自动连接蓝牙后台运行原创 2016-03-30 14:39:41 · 10082 阅读 · 1 评论 -
iOS中Quartz Core 图层编程
文章出处:http://blog.csdn.net/iukey一、添加 Quartz Core 框架要使用 Quartz Core 框架,你需要将其添加到你的工程中 。 然后 #import 二、认识图层对 ps 有所了解的人都知道图层的概念,在这里也一样。在PS中一张图片至少得有一个图层,一个或多个图层的叠加构成了一张位图。我们这里一个或多个图层的叠加的构转载 2016-07-08 14:13:52 · 398 阅读 · 0 评论 -
iOS巧用UIButton自定义控件
在iOS中,UIButton与UIImageView都可以显示图片,而且但从名字上来说,UIImageView显得更专业一些,但在实际开发中,还是UIButton使用的更加频繁,UIButton的一个常用功能就是自定义控件,上面的例子如果多添加几个UIButton的话就成了UITabBar了,系统自带的TabBar样式比较单一,往往满足不了美化以及多功能的需求,所以,用UIButton来自定义TabBar是一个不错的选择原创 2016-05-05 09:53:23 · 1133 阅读 · 0 评论 -
Xcode如何手动添加pch文件
Xcode7如果还想用pch文件的话需要自己手动添加了,方法如下:1.点击File—>New—>File(或者快捷键command+N)在iOS—>Other目录下选择PCH File2.给PCH文件命名,最好是 项目名-Prefix.pch3.在targets中的Build Setting中搜索prefix,找到Apple Llvm 7.0 - Language4.将Prec原创 2016-05-03 21:33:51 · 363 阅读 · 0 评论 -
iOS程序更新后新特性介绍界面的实现
今天一起更新了好多软件,突然注意到每个软件更新版本之后都会先出现一个新版本功能引导提示界面,然后在跳转到正常的实现界面,那么如何做才能实现上述功能呢。思路比较简单,最重要的一点就是如何判断用户是否第一次使用软件当前的版本,如果第一次使用这个版本,则显示版本新功能界面,否则直接显示主界面。APP有一个特点就是软件如果没有被卸载过,那么在沙盒里的东西是不会变的,我们刚好可以利用这一点,通过判断沙盒原创 2016-05-03 11:05:05 · 1990 阅读 · 0 评论 -
iOS图片的自动适配(通过类别实现)
在实际开发应用中,美工通常都会根据不同的机型设计出很多套背景图片,而这些背景图片的命名通常都是有规律的,我们刚好可以利用这一特点把图片名称的修改或者拼接写成一个方法,然后根据不同的机型返回不同的适配图片,即可达到自动适配的目的,且避免了图片的失真。首先,为NSString新建立一个分类,专门用来在图片名后面拼接对应的屏幕信息#import "NSString+append.h"@imp原创 2016-05-08 10:23:14 · 2323 阅读 · 0 评论 -
iOS图片不失真拉伸方法
在实际开发应用中,有的时候我们会遇到想把某个背景图片或者按钮图片放大些尺寸,但是又不想改变其轮廓形状,最简单的办法就是把该图片中间部分的像素进行拉伸,在此提供一个类方法,传入要拉伸图片的图片名,即可返回拉伸好的图片#pragma mark 不失真拉伸图片+(UIImage *)stretchWithName:(NSString *)name{ //name为传入的要拉伸图片的图片名原创 2016-05-16 00:16:48 · 3485 阅读 · 0 评论 -
property属性使用大全
(1)在平时的开发中,一般情况下UI控件都用weak;(2)NSString类型的都用copy;(3)属性的类型是OC对象的用retain;属性类型是非OC对象的用assign;(4)对象都用strong;(5)出现两个属性相互引用的时候一定要一个strong一个weak;原创 2016-04-23 13:21:57 · 551 阅读 · 0 评论 -
iOS内存优化常用方法(更新中)
1.遇到图片较多且不需要缓存的情况下,不要用imageNamed方法,用initWithContentOfFile加载图片//加载图片的两种方式 //1.有缓存 UIImage *image = [UIImage imageNamed:@"a.jpg"]; //2.无缓存 NSString *path = [[NSBundle mainBundle]原创 2016-04-27 16:12:49 · 2599 阅读 · 0 评论 -
Xcode7隐藏、更改状态栏
1.隐藏状态栏:修改plist文件,添加如下两项2.改变状态栏默认颜色:首先,同样是在plist文件中添加这项系统默认状态栏的颜色是黑色,如果改成白色的话则在相应的ViewController下面加入[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightCont原创 2016-07-05 15:26:21 · 638 阅读 · 0 评论 -
iOS中常见 Crash 及解决方案
转自微信公众号:iOS大全一、访问了一个已经被释放的对象在不使用 ARC 的时候,内存要自己管理,这时重复或过早释放都有可能导致 Crash。例子NSObject *aObj = [[NSObjectalloc]init];[aObjrelease]; NSLog(@"%@"原创 2016-09-19 23:12:15 · 1314 阅读 · 0 评论