iOS开发
文章平均质量分 76
iOS开发学习笔记
活在生活里
学最好的别人,做最好的自己。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Objective-C 类型编码
在开发的时候我们会遇到后跟 ObjCType:(const char *)types 的方法。 如: + (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type; + (nullable NSMethodSignature *)signatureWithObjCTy原创 2016-11-28 14:40:15 · 4089 阅读 · 0 评论 -
NSInvocation的基本使用
一. NSInvocation简介在iOS开发中,可以直接调用方法的方式有两种:performSelector:withObject: 和 NSInvocation。 performSelector:withObject:使用简单,但缺点是只能传一个参数,大于2个参数就无法使用;NSInvocation就不一样,功能更加强大,但实现有点复杂。在IOS4.0之后,这两种直接调用对象消息的方法,原创 2016-11-28 12:20:47 · 9541 阅读 · 1 评论 -
浅谈父子控制器
一. 什么是父子控制器?一个控制器通过addChildViewController:方法添加多个控制器,被添加的控制器称为子控制器,添加多个子控制器的控制器称为父控制器。二. 父子控制器关系有什么作用?(1). 父控制器处理的事件会自动传给子控制器 (2). 子控制器处理的事件会自动传给父控制器 (3). 子控制器可以通过属性parentViewController获取父控制器原创 2016-11-11 16:55:19 · 2596 阅读 · 0 评论 -
GIT-删除远程服务端的文件
1. 在本地仓库A执行以下命令:$ sudo rm test$ git add .$ git commit -m "delete test"$ git push 2. 检查服务器是否还有test.text文件,检测结果是没有的$ git pull注意:在A仓库pull后确实没有了test.text文件,但是在B仓库pull还有test.text文件解释: git add 只会将新建的原创 2017-05-26 09:54:57 · 3055 阅读 · 0 评论 -
RunLoop的学习总结
一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作,而在没工作的时候处于休眠状态。如果不使用RunLoop类似的循环机制,线程执行完当前任务队列中的任务就结束了,程序不能持续运行。也可以把R原创 2016-12-21 23:13:13 · 2257 阅读 · 0 评论 -
关于RunLoop部分源码的注释
RunLoop源代码是开发的,是Core Fundation框架的一部分,可以在线查看和或者下载。本篇博文是对RunLoop部分源码进行注释,因本人知识有限,如有注释不妥的地方请指教。#if DEPLOYMENT_TARGET_WINDOWS// kNilPthreadT 为空的线程static pthread_t kNilPthreadT = { nil, nil };#define pth原创 2016-12-21 23:17:55 · 2329 阅读 · 0 评论 -
iOS项目小笔记
// 加载类的时候调用,当程序一启动的时候就会调用+ (void)load; // 当类或者其他子类第一次使用的时候调用+ (void)initialize;// 获取当前应用下得所有导航条+ (instancetype)appearance;描述多个控制器选择用storyboard,描述一个控制器用xib。在设置界面时,UIView和控制的选择,需要与客户交互用控制器,不需原创 2016-11-08 23:10:07 · 526 阅读 · 0 评论 -
有用的框架
库名 解释 Metal 是一种低层次的渲染应用程序编程接口,iOS 8时发布 Scene Kit 3D游戏,iOS 8时发布 Sprite Kit 2D游戏,iOS 7时发布 OpenGL 跨平台三维图形库 OpenCL 异构平台编写程序的框架,可通过GPU并行计算 OpenAL 跨平台音效API,它设计给多通道三维位置音效的特效表现 OpenC原创 2016-12-15 09:53:39 · 658 阅读 · 0 评论 -
使用Xcode的pod插件加载第三方框架不成功
前提:已经成功安装pods我的MAC系统:ruby的版本:ruby的软件源:pod的版本:使用终端查看第三方框架信息一直卡住,但是可以用终端创建项目的pod,网上的各种办法用遍,都不成功,不知道为啥(有知道答案的请分享),下面是卡住的界面:XCode中得pod插件,编写Podfile文件,默认提示格式:如果是用下面的方式写,当Install Pods会出错,如下:source 'https://g原创 2017-05-26 20:57:42 · 1671 阅读 · 0 评论 -
OC对象与CF对象的相互转换 和 ARC下查看OC对象的引用计数
注意:文中的OC对象指Objective-C对象,CF对象指Core Foundation中的对象 转换方法: (__bridge type)expression (__bridge_retained CF type)expression (__bridge_transfer Objective-C type)expression原创 2016-12-08 19:01:11 · 1618 阅读 · 0 评论 -
使用storyboard开发,从来源控制器Push到目标控制器,隐藏Tabbar,在模拟器中,跳转后的界面的布局控件从上往下移动
问题描述: 使用storyboard开发,从来源控制器Push到目标控制器,在模拟器中运行,跳转后的界面的布局控件从上往下移动。原创 2016-11-04 11:23:39 · 2223 阅读 · 0 评论 -
在xib或storyboard中textView或label的换行
在xib或storyboard中textView或label的换行方法: 在需要换行的位置:按下option键然后敲回车就可以换行,想换几行就敲几个回车。如图:原创 2017-05-26 12:07:04 · 2881 阅读 · 0 评论 -
iOS多线程总结(2)——GCD的使用
本篇是多线程总结的第二篇,关于多线程的概念和NSThread的使用写在第一篇,查看请点击 《iOS多线程总结(1)——多线程相关概念及NSObject/NSThread的使用 》,本编主要降解GCD的使用。一. GCD简介1. 什么是GCD全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”,纯C语言,提供了非常多非常强大的函数。2. GCD的优势GCD是苹果公司为多核的原创 2016-11-23 17:42:47 · 1048 阅读 · 0 评论 -
《操作系统之哲学原理(第2版)》——— 操作系统的发展历史
第一阶段:状态机操作系统(1940年以前)这是计算机处在萌芽时期出现的操作系统。这种操作系统运行在英国人巴贝斯(Babbes)想象中的自动机中。所谓状态机操作系统实际上算不上是我们现在通常所定义的操作系统,而是一种简单的状态转换程序:根据特定输入和现在的特定状态进行状态转换而已。这个时候的计算机也不是现代意义上的计算机,而是所谓的自动机,其功能非常简单,可以用原始来形容。能做的计算也只限于加减转载 2016-11-15 10:49:46 · 4443 阅读 · 0 评论 -
作业、进程、线程、多线程、多核
一. 基本概念线程,进程是什么?要理解两者概念,须要先了解一下操作系统的一些相关概念。操作系统中的任务调度大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂转载 2016-11-15 15:05:38 · 1835 阅读 · 0 评论 -
单核处理器、多核处理器、多处理器与多线程编程
一.进程、线程、单核处理器 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,即进程是操作系统进行资源分配的最小单元。进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。 线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形转载 2016-11-15 11:00:31 · 1241 阅读 · 0 评论 -
iOS多线程总结(3)——NSOperation与NSOperationQueue的使用
本篇是多线程总结的第三篇,关于多线程的概念和NSThread的使用写在第一篇,《iOS多线程总结(1)——多线程相关概念及NSObject/NSThread的使用 》,第二篇《iOS多线程总结(2)——GCD》主要讲解GCD的使用,本编是线程实现总结的最后一篇,主要讲解NSOperation的使用。一. NSOperation在MacOSXv10.6和iOS4之前,NSOperati原创 2016-11-26 23:22:43 · 3911 阅读 · 0 评论 -
iOS网络底层实现
在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了。最后,添加了另一层(NSStream)来封装CFNetwork,并且作为最基础的Objective-C网络API。大家更熟悉的类(比如NSURLConnection与UIWebView)都是非常易于使用的,而且能够通过很转载 2017-06-07 22:11:51 · 1252 阅读 · 0 评论 -
精心整理的操作系统相关概念
一. 操作系统的发展(一). 第一代(1945~1955):无操作系统第一台计算机诞生时,还没出现操作系统,是每一步操作都是纯手工的。操作人员将对应于程序和数据的已穿孔的纸带装入机器,然后启动输入机把程序和数据输入到计算机内存,接着通过控制台开关启动程序针对数据运行,计算完毕后打印机输出结果,用户取出结果并卸下纸带,到下一个用户上机。(二). 第二代(1955~1965):单道原创 2016-11-15 16:04:31 · 2081 阅读 · 0 评论 -
进程、线程、多进程、多线程概念介绍
线程和进程都是现在电脑概念里比较时髦的用语,什么是多线程,什么是多进程?本文详细的给您介绍一下,希望能增进您对当代电脑技术的了解,有不到之处,还往高手予以更正。一. 进程与线程进程(英语:Process,中国大陆译作进程,台湾译作行程)是计算机中已运行程序的实体。进程本身不会运行,是线程的容器。程序本身只是指令的集合,进程才是程序(那些指令)的真正运行。若干进程有可能与同一个程序相关系,且每个进程转载 2016-11-15 15:42:15 · 10324 阅读 · 0 评论 -
iOS多线程总结(1)——多线程相关概念及NSObject/NSThread的使用
一. 多线程的相关概念1. 什么是进程?在操作系统发展的早期,为了提高资源利用率,使程序在多道程序下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程的概念。多道程序技术最早用于多道批处理系统,系统内可以同时存在多道作业,但同一时刻,系统只处理一道作业,作业根据系统的调度算法执行,每一个作业又由若干个程序组成,每个程序都可以完成独立的任务,且一个作业里面的程序是按顺序原创 2016-11-22 17:26:15 · 1093 阅读 · 0 评论 -
进程、线程、多进程、多线程的优缺点
一. 在Linux下编程多用多进程编程少用多线程编程IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更适合做high转载 2016-11-15 15:24:27 · 7433 阅读 · 0 评论 -
使用Charles 4.1.1 抓取iPhone上的数据接口
说明: 1. 本人电脑是黑苹果,系统是OS X EI Capitan,版本10.11.5 2. Charles版本是4.1.1一. 实现步骤下载和安装Charles下载和安装电脑的Charles证书,并设置为始终信任,默认是不信任从Charles上获取需要在iPhone上安装的 证书网址在iPhone上下载和安装证书,最关键一步是要对证书进行 信任 设置在Charles上进行原创 2017-05-28 05:14:19 · 4613 阅读 · 0 评论 -
模态窗口
一. 简介1. 简介由于在iOS中并没有专门的模态窗口类,模态窗口(modal)在iOS中只是视图控制器显示的一种方式,模态窗口方便快捷,它不依赖于控制器容器(如UITabBarController和UINavigationController),通常用于显示独立的内容,在模态窗口显示的时候,它暂时中断程序正常的执行流程,用户无法再与上一个场景交互,只能对当前此窗口进行操作,除非他们先原创 2016-08-27 18:25:24 · 3972 阅读 · 0 评论 -
iOS的屏幕适配之Autoresizing、Autolayout、VFL、Masonry
屏幕适配 iPhone4S之前没有屏幕适配,因为屏幕尺寸不变,全部用frame、bounds、center进行布局。 iphone5之后才开始有屏幕适配。Autoresizing iPad的出现和iPhone横屏的出现,出现Autoresizing技术 Autoresizing让横竖屏适配相对于用frame、bounds、center进行布局简单 使用Autores原创 2016-07-23 10:35:25 · 1888 阅读 · 0 评论 -
UI基础第一天(知识点)
一、iOS项目1、有一个好的想法,再写出号的方案。2、开发步骤 搭建软件界面(UI设计) ---> 获取网络数据(多线程&网络) ---> 解析网络数据(JSON\XML) --->原创 2016-05-13 21:52:20 · 773 阅读 · 0 评论 -
控制器之间的数据传递——storyboard中控制器的数据传递
在APP开发中,我们经常需要在不同的控制器之间进行数据传递,按照传递的方向,可分为顺传和逆传;按照是否通过第三者(如通过单例、或者文件等)传递数据,可以分为:直接传递和间接传递。一. 在storyboard中控制器的数据传递1. 在storyboard中,拖入控制器在storyboard中,把默认的视图控制器删除,并拖入一个导航控制器UINavigationControlle原创 2016-08-29 14:51:15 · 2258 阅读 · 0 评论 -
九宫格的计算
说明: (1).黄色框代表父控件 (2).红色方块代表子控件 (3).绿色框代表列宽 (4).蓝色框代表行高 (5).0-8数字代表索引九宫格的计算方式: (1).自定义一些变量 列数 = 自定义 子控件宽 = 自定义 子控件高 = 自定义 (2).计算列宽和行高 列宽 = (父控件的宽 - 子控件宽 * 列数) / (列数 - 1) 行高 = 自定义 (3原创 2016-07-17 20:09:10 · 2989 阅读 · 0 评论 -
iOS之模态情境
重要:这是针对于正在开发中的API或技术的预备文档(预发布版本)。虽然该文档在技术精确度上经过了严格的审核,但并非最终版本,仅供苹果开发者计划的注册会员使用。苹果提供这份机要文档的目的,是帮助你按照文中描述的方式对技术的选择及界面的设计开发进行规划。这些信息有可能发生变化,届时,你的设计开发方式需要基于转载 2016-08-27 15:52:09 · 1347 阅读 · 1 评论 -
控制器之间的数据传递——Block传值
Block传值我们先在这里约定:界面1传值到界面2为顺传,界面2传值到界面1为逆传一般用Block传值是为了降低视图控制器之间的耦合度,和代理传值类似主要用于逆序传值。一. 实现步骤:给界面2定义一个Block属性;注意:在block传值中,要传几个值,block就有几个参数,参数要与传的值对应在界面2的跳转方法中检查block属性是否有值,有值就执行block,然后界面2出栈原创 2016-08-29 18:36:39 · 1921 阅读 · 0 评论 -
UI基础第一天(代码)
编程任务: 设计可以移动和缩放图片的APP,如下图,掌握按钮的常见属性和常见方法。 方法一:利用frame属性,对图片的位置和大小进行更改。#import "ViewController.h"@interface ViewController ()//私有属性@property (原创 2016-05-14 11:53:53 · 1108 阅读 · 0 评论 -
控制器之间的数据传递——代理传值
代理传值我们先在这里约定:界面1传值到界面2为顺传,界面2传值到界面1为逆传 一般用代理传值是为了降低视图控制器之间的耦合度,主要用于逆序传值。 对于属性传值,传递方必须要有一个保存接收方的属性,而代理传值不需要知道接收方是谁,只要其代理遵守代理协议,就可以获取通过代理方法传出的数据模型一. 实现步骤界面2实现一个代理协议界面2设置一个代理属性界面2通知其代理做事情界面2在入原创 2016-08-29 18:07:30 · 1207 阅读 · 0 评论 -
控制器之间的数据传递——通知传值
通知传值我们先在这里约定:界面1传值到界面2为顺传,界面2传值到界面1为逆传通知中心是一个单例,在哪里注册通知中心,通知中心都是同一个。一. 实现步骤在界面2注册一个通知中心并指定通知名称,通知的信息就是要传递的数据,发布通知在界面1注册一个通知中心,添加界面1为观察者,当有相同名字的通知时,就执行指定方法在实现通知的方法中,进行赋值操作在界面1中移除通知原创 2016-08-29 21:13:54 · 1801 阅读 · 0 评论 -
UITableView(一)----基本介绍
一、简介1. 继承关系UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳。UITableView的代理协议也继承了UIScrollView的代理协议,可以通过实现UIScrollView的代理方法,监听UITableView的变化。在UITableView中没有列的概念,只有行的概念,数据都是按行显示的。2.使用场景在iOS中,通常使用UI原创 2016-08-05 13:19:54 · 1601 阅读 · 0 评论 -
iOS的手势识别器
一. 监听触摸事件的做法如果想监听一个view上面的触摸事件,不使用手势实现的步骤 (1). 自定义一个view (2). 实现view的touches方法,在方法内部实现具体处理代码通过touches方法监听view触摸事件,有很明显的几个缺点 (1). 必须得自定义view (2). 由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听原创 2016-10-08 16:57:47 · 1417 阅读 · 0 评论 -
核心绘图——Core Graphics
一. Core Graphics简介Core Graphics是一个基于C的绘图专用的API族,它经常被称为QuartZ或QuartZ 2D,是一个二维绘图引擎,同时支持iOS和Mac系统。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变。 提示: 引擎:经过包装的函数库,方便开发者使用。QuartZ 2D是苹果帮封装的一套绘原创 2016-10-30 20:53:54 · 5216 阅读 · 1 评论 -
核心动画——Core Animation
一. CALayer(一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个原创 2016-10-31 09:59:32 · 2901 阅读 · 0 评论 -
UITableView(二)----显示数据
一. 单组数据的Table View1. 创建工程后,直接把Table View拖到View Controller上2. 拖线设置数据源3. 创建数据模型#import @interface SSData : NSObject//图标@property (nonatomic,strong) NSString *icon;//简介@property (nona原创 2016-08-08 16:26:04 · 753 阅读 · 0 评论 -
UI基础第三天(代码)
项目:应用管理方法:懒加载测试数据动态生成实现:在ViewController中声明属性data,重写get方法进行懒加载@interface ViewController ()//创建存储应用程序数据的数组@property (nonatomic,strong) NSArray *data;@end//1.懒加载-(NSArray*) data{原创 2016-05-23 07:47:23 · 696 阅读 · 0 评论 -
UIScrollView的自动布局
一. UIScrollView内容的自动偏移当A控制器是UINavigationController的子控制器时,并且A控制器的view的第一个子控件是UIScrollView(包括继承自UIScrollView的子类,如:UITableView,UICollectionView,或者是自定义继承自UIScrollView的类),内容会有自动偏移的现象,有如下两种情况。竖屏的情况下,Sc原创 2016-11-12 09:49:09 · 1677 阅读 · 0 评论
分享