iOS学习笔记
文章平均质量分 60
小崔_clq
存鹰之心于高远;取鹰之志而凌云; 习鹰之性以涉险; 融鹰之神在山巅
展开
-
iOS学习笔记(2)——CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
【转载】原博客地址:http://blog.csdn.net/iosevanhuang/article/details/14488239博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习。原帖地址:http://www.o转载 2015-02-09 20:36:11 · 428 阅读 · 0 评论 -
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 · 2084 阅读 · 0 评论 -
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 · 694 阅读 · 0 评论 -
iOS学习——几种数据持久化方法
转自:http://www.cocoachina.com/ios/20150720/12610.html概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(属性列表)preference(偏好设置)转载 2016-05-10 22:04:08 · 364 阅读 · 0 评论 -
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 · 362 阅读 · 0 评论 -
【转】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 · 959 阅读 · 0 评论 -
iOS学习——NSString属性的strong和copy
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:1234@interface TestS转载 2016-05-09 20:59:09 · 306 阅读 · 0 评论 -
Swift中单例的实现方法
单例在Swift中的正确实现方式原文链接 : The Right Way to Write a Singleton原文作者 : Hector Matos译文出自 : 开发技术前线 www.devtf.cn译者 : Gottabe尽管在我之前的博文里我就写过关于管理状态的那些坑,但是有时候我们就是无法避免它们。其中一类管理状态的方式我们耳熟能详 - 单例。但是转载 2016-06-27 21:58:35 · 422 阅读 · 0 评论 -
深入浅出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 · 306 阅读 · 0 评论 -
iOS学习——KVO底层实现机制探究
一、什么是KVO?KVO(Key Value Observing, 键值观察)是Objective-C对观察者模式的实现,每次当被观察对象的某个属性值发生改变时,注册的观察者便能获得通知。使用KVO很简单,分为三个基本步骤:①、注册观察者,指定被观察对象的属性:[person addObserver:self forKeyPath:@"name" options:NSKeyValu原创 2016-07-06 22:22:32 · 2989 阅读 · 0 评论 -
使用storyboard添加控件,用代码为控件添加约束时,出现NSIBPrototypingLayoutConstraint冲突的解决办法
iOS7之后,如果在storyboard或XIB中添加控件,并且没有在storyboard中为该控件设置约束,但是标注了使用AutoLayout的话,在运行时期,系统会默认为该控件添加NSIBPrototypingLayoutConstraint约束。如果使用代码添加约束的话,就会造成约束冲突。解决方法如下:在代码添加约束之前,删除系统添加的self.view的所有约束。原创 2016-08-17 18:11:49 · 460 阅读 · 0 评论 -
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 · 314 阅读 · 0 评论 -
AFNetworking 3.0中调用[AFHTTPSessionManager manager]方法导致内存泄漏的解决办法
最近做公司项目用到AFNetworking框架,使用Instruments检查Leaks时,检测到1000多个内存泄漏的地方,定位到[AFHTTPSessionManager manager]语句中,几乎程序中每个调用该方法的地方都出现了内存泄漏。去stackoverflow上也没找到好的解决办法。无意中在csdn中找到这篇文章:http://blog.csdn.net/wangkexu1原创 2016-09-14 16:36:01 · 6783 阅读 · 1 评论 -
iOS——存储图片到自定义相册
1、将图片存储到系统相册“相机胶卷”/* 将图片保存到系统相册(相机胶卷) */+(PHObjectPlaceholder *)saveToCameraRollAlbumnWithImage:(UIImage *)image { __block PHObjectPlaceholder *placeHolder = nil; NSError *err;原创 2016-11-03 09:33:19 · 704 阅读 · 0 评论 -
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 · 454 阅读 · 0 评论 -
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 · 648 阅读 · 0 评论 -
【转】iOS延迟加载
1.延迟加载基本延迟加载——也称为懒加载,即在需要的时候才加载(效率低,占用内存小)。所谓延迟加载,写的是其get方法.注意:如果是延迟加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化。2.使用延迟加载的好处:(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强;(2)每个控件的getter方法中分别负责转载 2015-07-31 23:35:27 · 341 阅读 · 0 评论 -
iOS开发之多线程——NSThread、NSOperation、GCD
一、概述1、NSThread优点:轻量级,使用简单;缺点:需要自己管理线程的生命周期、线程同步,线程同步时对数据加锁会造成系统额外的开销。且难以控制线程的执行顺序和并发数量。使用方法:①、类方法:+(void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)obj,该方法创建线程并原创 2015-05-05 22:36:08 · 397 阅读 · 0 评论 -
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 · 419 阅读 · 0 评论 -
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 · 1038 阅读 · 0 评论 -
iOS学习笔记(3)——响应自定义的UITableViewCell及其内部控件的点击事件
这几天自己动手写新浪微博,用到了自定义的tablecell。由于Cell内部诸多控件的都能响应用户的点击,使用UITableView的didSelectRowAtIndexPath:代理方法已经不能满足项目需求。使用代理模式实现。1、在自定义的Cell中定义一个接口及方法.h文件#import @class StatusCellFrame;@class StatusCell;@pr原创 2015-02-10 19:50:53 · 752 阅读 · 0 评论 -
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 · 437 阅读 · 0 评论 -
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 · 1068 阅读 · 0 评论 -
iOS学习笔记(5)——设计模式之工厂方法、抽象工厂
工厂方法、抽象工厂都属于对象创建型设计模式,这类设计模式的功能主要是帮我们把对象的创建操作抽取出来。创建对象时我们不需要知道其具体细节,从而增强了系统的可扩展性。原创 2015-02-26 16:25:09 · 403 阅读 · 0 评论 -
iOS学习笔记(6)——适配器(Adapter)模式
买过港版iPhone的人都知道,港版iPhone的充电器使用的是英标,与内地的国标标准不通用。因此,如果想在内地使用港版的充电器,就必须再买个转接头,使港版充电器的插头能够与国标插口“适配”。这个转接头的功能即类似于我们这里提到的“适配器”。 在软件设计中,已有的类与新接口之间不兼容的问题相当常见,同时,我们又不想为新的接口而重写现有的类。此时,就需要用到“适配器模式”。原创 2015-03-02 14:31:05 · 3312 阅读 · 0 评论 -
iOS学习笔记(9)——中介者模式
一、中介者模式中介者,顾名思义,即一个处理各种交互集中化操作的角色。面向对象的设计思想鼓励把行为分散到不同的对象中,但是,这种行为的分散可能在一定程度上增大对象之间的关联,增大了系统的耦合度,为后期的维护和扩展带来不便。中介者模式定义了一个集中的场所,对象间的交互可以在一个中介者对象中集中处理,其他对象不必彼此交互,这样就减少了对象之间的关联。定义:用一个对象来封装一系列对象的交互方式。中原创 2015-03-16 20:29:25 · 1079 阅读 · 0 评论 -
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 · 350 阅读 · 0 评论 -
iOS HTTP请求——同步请求、队列式异步请求、异步请求
在iOS应用与HTTP服务器进行HTTP通信时,有3个主要的方法可以执行HTTP请求并接收响应。同步请求——该方法为阻塞式,直到整个响应加载完毕并返回调用方法为止。异步请求——该请求运行在起始线程中,不过在请求处理时会调用委托方法。队列式异步——将请求放到一个队列中以在后台线程中执行。上述3类请求共用4类对象:NSURL、NSURLRequest、NSURLConnecti原创 2015-04-15 21:57:21 · 2855 阅读 · 0 评论 -
iOS网络开发——解析与封装JSON数据
一、什么是JSONJSON是一种轻量级的用于交换结构化信息的数据格式。JSON的数据格式与Objective-C中得NSDictionary很相似,如下代码片段所示{ "person":{ "firstName":"John", "lastName":"Jones", "email":{ "emailAddr":"xxxxx@xxx.com", "primary"原创 2015-04-27 20:45:02 · 1861 阅读 · 0 评论 -
iOS 面试题之什么是多线程?
文章出自:http://my.oschina.net/CgShare/blog/303781首先分析多线程的使用环境:多线程处理包括Core Data的多线程访问,UI的并行绘制,异步网络请求以及一些在运行态内存吃紧的情况下处理大文件的方案等。其次,分别举例说明iOS提供的多线程的实现方法iOS中提供了以下集中中多线程的实现方式1.N转载 2015-04-28 09:16:16 · 473 阅读 · 0 评论 -
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 · 564 阅读 · 0 评论 -
iOS开发之UITableView的性能优化
前段时间在自己写新浪微博项目时,用到了自定义的TableViewCell和UITableView控件。由于微博的数目较多,且每条微博中包含大量的图片,如果对每条微博都新建一个cell进行展示的话,势必会耗尽系统资源并最终导致应用闪退。这里总结一下项目中用到的UITableView性能优化的一些知识点。一、原创 2015-05-05 16:48:51 · 434 阅读 · 0 评论 -
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 · 422 阅读 · 0 评论 -
使用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 · 8493 阅读 · 1 评论