- 博客(41)
- 收藏
- 关注
原创 iOS——存储图片到自定义相册
1、将图片存储到系统相册“相机胶卷”/* 将图片保存到系统相册(相机胶卷) */+(PHObjectPlaceholder *)saveToCameraRollAlbumnWithImage:(UIImage *)image { __block PHObjectPlaceholder *placeHolder = nil; NSError *err;
2016-11-03 09:33:19
770
原创 使用IOS 10 / XCODE 8.1 遇到 libsystem_kernel.dylib`__abort_with_payload问题的解决方法
项目中存取图片需要访问系统相册和相机,使用Xcode 8.1+iOS10进行调试的时候,总是报 libsystem_kernel.dylib`__abort_with_payload的错误。解决方法如下:在info.plist中增加:Privacy - Photo Library Usage Description,value部分写为何获取权限的理由;增加:Privacy - Camera U
2016-11-02 11:32:13
8595
转载 objc_msgSend()报错Too many arguments to function call ,expected 0,have2的解决办法
Build Setting--> Apple LLVM 6.0 - Preprocessing--> Enable Strict Checking of objc_msgSend Calls 改为 NO
2016-10-18 20:19:43
674
原创 iOS——ARC桥接转换中__bridge、__bridge_retained和__bridge_transfer前缀的用法
Apple为基于C语言的Core Foundation框架和基于OC的Foundation框架中的许多数据类型提供了直接桥接(toll free bridging)的功能,通过该功能,我们可以在Core Foundation的函数调用和OC的消息接收器中使用相同数据类型的参数。一些较常用的可以直接桥接的数据类型如:CFArrayRef NSArray,CFDataRef NSData,CF
2016-10-18 16:38:45
477
原创 AFNetworking 3.0中调用[AFHTTPSessionManager manager]方法导致内存泄漏的解决办法
最近做公司项目用到AFNetworking框架,使用Instruments检查Leaks时,检测到1000多个内存泄漏的地方,定位到[AFHTTPSessionManager manager]语句中,几乎程序中每个调用该方法的地方都出现了内存泄漏。去stackoverflow上也没找到好的解决办法。无意中在csdn中找到这篇文章:http://blog.youkuaiyun.com/wangkexu1
2016-09-14 16:36:01
6831
原创 使用storyboard添加控件,用代码为控件添加约束时,出现NSIBPrototypingLayoutConstraint冲突的解决办法
iOS7之后,如果在storyboard或XIB中添加控件,并且没有在storyboard中为该控件设置约束,但是标注了使用AutoLayout的话,在运行时期,系统会默认为该控件添加NSIBPrototypingLayoutConstraint约束。如果使用代码添加约束的话,就会造成约束冲突。解决方法如下:在代码添加约束之前,删除系统添加的self.view的所有约束。
2016-08-17 18:11:49
482
原创 Xcode 7 中App Transport Security has blocked a cleartext HTTP (http://) 错误的解决方法
使用Xcode 7.3 在项目中用到UIWebView请求页面时遇到上述错误,网上查询资料后确定问题所在:新版本要求在APP内访问网络时要采用HTTPS协议,如果不能采用HTTPS加密传输,可采用下面的解决方法:1、在info.plist文件中添加App Transport Security Settings,类型为Dictionary;2、在App Transport Security
2016-08-09 14:30:43
337
原创 iOS学习——KVO底层实现机制探究
一、什么是KVO?KVO(Key Value Observing, 键值观察)是Objective-C对观察者模式的实现,每次当被观察对象的某个属性值发生改变时,注册的观察者便能获得通知。使用KVO很简单,分为三个基本步骤:①、注册观察者,指定被观察对象的属性:[person addObserver:self forKeyPath:@"name" options:NSKeyValu
2016-07-06 22:22:32
3021
转载 深入浅出iOS事件机制
在github上看到一篇关于iOS事件机制的文章,写的不错,转载过来供大家分享原文地址:http://zhoon.github.io/ios/2015/04/12/ios-event.html本文章将讲解有关iOS事件的传递机制,如有错误或者不同的见解,欢迎留言指出。iOS的事件有好几种:Touch Events(触摸事件)、Motion Events(运动事件,比如重力感
2016-06-27 22:46:30
324
转载 Swift中单例的实现方法
单例在Swift中的正确实现方式原文链接 : The Right Way to Write a Singleton原文作者 : Hector Matos译文出自 : 开发技术前线 www.devtf.cn译者 : Gottabe尽管在我之前的博文里我就写过关于管理状态的那些坑,但是有时候我们就是无法避免它们。其中一类管理状态的方式我们耳熟能详 - 单例。但是
2016-06-27 21:58:35
450
原创 iOS学习——UIView圆角图片的设置方法
最近做的项目中,有个设置用户头像为圆角的需求。如果使用imageView.layer.masksToBounds = YES;imageView.layer.cornerRadius = 5.0f; 的方法设置圆角图片,会对应用的性能造成影响,如果tabelview中有较多的圆角图片,则会造成tableview拖动卡顿的问题网上搜索资料找到替代的解决方法如下:(使用贝塞尔曲线代替之)+
2016-06-22 23:11:47
385
转载 【转】iOS学习——深入理解Objective-C的Runtime机制
Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发。下面通过分析Apple开源的Runtime代码(我使用的版本是objc4-646.tar)来深入理解Objective-C的Runtime机制。Runtime数据结构在Objective-C中,使用[receiv
2016-05-12 22:36:00
980
原创 iOS学习——self和super关键字的解析
以一道面试题开篇:@implementation Son : Father- (id)init{ self = [super init]; if (self) { NSLog(@"%@", NSStringFromClass([self class])); NSLog(@"%@", NSStringFromClass([super c
2016-05-12 22:31:32
394
转载 iOS学习——几种数据持久化方法
转自:http://www.cocoachina.com/ios/20150720/12610.html概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(属性列表)preference(偏好设置)
2016-05-10 22:04:08
379
转载 iOS学习——NSString属性的strong和copy
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:1234@interface TestS
2016-05-09 20:59:09
321
转载 【转】iOS延迟加载
1.延迟加载基本延迟加载——也称为懒加载,即在需要的时候才加载(效率低,占用内存小)。所谓延迟加载,写的是其get方法.注意:如果是延迟加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化。2.使用延迟加载的好处:(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强;(2)每个控件的getter方法中分别负责
2015-07-31 23:35:27
361
原创 Xcode6 有关Unknown type name ’UIImage‘问题的解决办法
今天写一个聊天APP,编码过程中很诡异的出现了Unknown type name ’UIImage‘的问题。上网查找后发现是Xcode6取消了pch文件的原因。解决办法: File -> New -> File -> Other -> PCH file. 在文件末尾添加:#ifdef __OBJC__#import #import #endif
2015-07-31 23:08:48
2117
转载 iOS开发之ARC机制详解
逛论坛的时候,发现一篇介绍ARC的博文,内容深入浅出,讲解透彻。转发出来与大家共享。原博文地址:http://www.onevcat.com/2012/06/arc-hand-by-hand/本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Counting机制,对ARC机制有听闻很向往但是一直由于种种原因没有使用的童鞋。本文将从ARC机理入手对这
2015-05-06 11:22:19
452
原创 iOS开发之多线程——NSThread、NSOperation、GCD
一、概述1、NSThread优点:轻量级,使用简单;缺点:需要自己管理线程的生命周期、线程同步,线程同步时对数据加锁会造成系统额外的开销。且难以控制线程的执行顺序和并发数量。使用方法:①、类方法:+(void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)obj,该方法创建线程并
2015-05-05 22:36:08
422
原创 iOS开发之UITableView的性能优化
前段时间在自己写新浪微博项目时,用到了自定义的TableViewCell和UITableView控件。由于微博的数目较多,且每条微博中包含大量的图片,如果对每条微博都新建一个cell进行展示的话,势必会耗尽系统资源并最终导致应用闪退。这里总结一下项目中用到的UITableView性能优化的一些知识点。一、
2015-05-05 16:48:51
455
原创 iOS之详解UIView的frame、bounds和center属性
一、概述UIView中定义了三个属性:frame, center, bounds。@property (nonatomic, strong) CGRect frame;@property (nonatomic, strong) CGRect bounds;@property (nonatomic, strong) CGPoint center;苹果官方对于这三个属性的说明如下:
2015-05-04 20:35:08
601
转载 iOS 面试题之什么是多线程?
文章出自:http://my.oschina.net/CgShare/blog/303781首先分析多线程的使用环境:多线程处理包括Core Data的多线程访问,UI的并行绘制,异步网络请求以及一些在运行态内存吃紧的情况下处理大文件的方案等。其次,分别举例说明iOS提供的多线程的实现方法iOS中提供了以下集中中多线程的实现方式1.N
2015-04-28 09:16:16
492
原创 iOS网络开发——解析与封装JSON数据
一、什么是JSONJSON是一种轻量级的用于交换结构化信息的数据格式。JSON的数据格式与Objective-C中得NSDictionary很相似,如下代码片段所示{ "person":{ "firstName":"John", "lastName":"Jones", "email":{ "emailAddr":"xxxxx@xxx.com", "primary"
2015-04-27 20:45:02
1883
原创 iOS学习笔记(10)——Block简介和用法
一、Block简介Block的语法形式如下:^(参数列表){行为主体}Block以符合“ ^ ”开头,参数列表如(NSString *str, int a, NSArray *arr)等,行为主体中可以使用return进行回传值。如果没有传入参数,则要写成以下形式:^(void){行为主体}^(NSString *str){return @"Hello World!";};下述
2015-04-20 10:06:02
732
原创 iOS HTTP请求——同步请求、队列式异步请求、异步请求
在iOS应用与HTTP服务器进行HTTP通信时,有3个主要的方法可以执行HTTP请求并接收响应。同步请求——该方法为阻塞式,直到整个响应加载完毕并返回调用方法为止。异步请求——该请求运行在起始线程中,不过在请求处理时会调用委托方法。队列式异步——将请求放到一个队列中以在后台线程中执行。上述3类请求共用4类对象:NSURL、NSURLRequest、NSURLConnecti
2015-04-15 21:57:21
2905
转载 HTTP中Get与Post的区别
原文出自:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.htmlHttp定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的
2015-03-17 11:04:19
370
原创 iOS学习笔记(9)——中介者模式
一、中介者模式中介者,顾名思义,即一个处理各种交互集中化操作的角色。面向对象的设计思想鼓励把行为分散到不同的对象中,但是,这种行为的分散可能在一定程度上增大对象之间的关联,增大了系统的耦合度,为后期的维护和扩展带来不便。中介者模式定义了一个集中的场所,对象间的交互可以在一个中介者对象中集中处理,其他对象不必彼此交互,这样就减少了对象之间的关联。定义:用一个对象来封装一系列对象的交互方式。中
2015-03-16 20:29:25
1103
转载 iOS学习笔记(7)——ARC内存管理技术要点
原创出自http://www.cnblogs.com/flyFreeZn/p/4264220.html本文的主要内容:ARC的本质ARC的开启与关闭ARC的修饰符ARC与BlockARC与Toll-Free BridgingARC的本质ARC是编译器(时)特性,而不是运行时特性,更不是垃圾回收器(GC)。Automatic Referen
2015-03-11 09:15:56
365
原创 iOS学习笔记(8)——ARC与所有权修饰符——strong,weak和autorelease
ARC与所有权修饰符——strong,weak和autorelease一、引用计数(Reference Counting)首先,对于iOS中的引用计数:1、在objective-C的对象中存在引用计数这一整数值。2、调用alloc/retain方法后,对象的引用计数值+1。3、调用release方法后,对象的引用计数值-1。4、对象的引用计数值为0时,系统调用dea
2015-03-10 16:59:52
1104
原创 iOS学习笔记(6)——适配器(Adapter)模式
买过港版iPhone的人都知道,港版iPhone的充电器使用的是英标,与内地的国标标准不通用。因此,如果想在内地使用港版的充电器,就必须再买个转接头,使港版充电器的插头能够与国标插口“适配”。这个转接头的功能即类似于我们这里提到的“适配器”。 在软件设计中,已有的类与新接口之间不兼容的问题相当常见,同时,我们又不想为新的接口而重写现有的类。此时,就需要用到“适配器模式”。
2015-03-02 14:31:05
3374
原创 iOS学习笔记(5)——设计模式之工厂方法、抽象工厂
工厂方法、抽象工厂都属于对象创建型设计模式,这类设计模式的功能主要是帮我们把对象的创建操作抽取出来。创建对象时我们不需要知道其具体细节,从而增强了系统的可扩展性。
2015-02-26 16:25:09
423
原创 算法学习(1)——初级排序算法
主要介绍两种基本的排序算法:选择排序、插入排序以及一种基于插入排序算法的变体——希尔排序。一、选择排序算法流程:1、找到数组中最小的元素;2、将该元素与数组的第一个元素交换(如果第一个元素最小则它和自己交换);3、在剩余元素中找到最小元素,将它与数组中第二个元素交换位置;4、重复2和3,直到整个数组有序为止。算法效率:该算法主要由两层循环执行,外循环从0~N(数
2015-02-26 11:39:12
394
原创 iOS学习笔记(4)——浅谈KVC与KVO
一、KVC:KVC,即NSKeyValueCoding,它允许我们用属性的字符串名称(即:key)来访问属性。例如:// 1、访问对象的属性@property (copy, nonatomic) NSString *strName;// 取值(getter)NSString *str = [object valueForKey@"strName"];// 设定(setter)
2015-02-13 16:25:22
456
原创 ios学习笔记(3)——objc_msgSend()报错Too many arguments to function call ,expected 0,have3解决方法
最近引入MJRefresh下拉刷新控件时,objc_msgSend报Too many arguments错误,网上查找到方法解决,记录如下:选中项目 - Project - Build Settings - ENABLE_STRICT_OBJC_MSGSEND 将其设置为 NO
2015-02-10 22:11:21
1062
原创 iOS学习笔记(3)——响应自定义的UITableViewCell及其内部控件的点击事件
这几天自己动手写新浪微博,用到了自定义的tablecell。由于Cell内部诸多控件的都能响应用户的点击,使用UITableView的didSelectRowAtIndexPath:代理方法已经不能满足项目需求。使用代理模式实现。1、在自定义的Cell中定义一个接口及方法.h文件#import @class StatusCellFrame;@class StatusCell;@pr
2015-02-10 19:50:53
771
转载 iOS学习笔记(2)——CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
【转载】原博客地址:http://blog.youkuaiyun.com/iosevanhuang/article/details/14488239博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习。原帖地址:http://www.o
2015-02-09 20:36:11
447
原创 iOS学习笔记(1)——声音调用
iOS提供了以下几种音频播放方法:一、System Sound Services需要用到AudioToolbox框架,将短声音注册到system sound服务上。这是一种最简单最底层的音频播放方式,只能播放一些满足以下条件的较短的提示音或警告音:1、音频长度2、必须是PCM或IMA4格式;3、必须是打包成Core Audio Format(.caf), Wavaform Au
2015-02-09 19:45:25
437
原创 iOS新浪微博客户端开发(3)——主界面搭建与动画
首先看一下最终效果:一、底部TabBar和TabBarItem的封装1. TabBarItem该父类又派生出两个子类:TabBarItemCommon(中间加号按钮两边的四个按钮)和TabBarItemCompose(中间的加号按钮)对于TabBarItemCommon,首先重写其initWithFrame方法,用于初始化时设置按钮中文字的位置、大小和按钮图片的内容模式等;
2015-01-31 20:20:20
647
原创 iOS新浪微博客户端开发(2)——OAuth授权
一、什么是OAuth?1、OAuth是一种协议,OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准2、任何服务提供商只要想把自己的用户资源共享出去,都可以实现自身的OAuth认证服务。比如腾讯可以实现自己的OAuth认证服务,把用户的QQ数据共享出去3、同时,任何第三方都可以使用OAuth认证服务,第三方若想访问用户资源,就必须遵守服务提供商实现的OAuth协议
2015-01-27 21:25:50
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人