ios开发

iOS多线程开发(三)---Run Loop(二,三)

不羁的心 提交于 2020-03-08 09:53:08
二,何时使用Run Loop 对于辅助线程,在需要和线程有更多交互时,才使用Run Loop。 比如:1)使用端口或者自定义输入源来和其他线程通讯 2)使用线程定时器 3)Cocoa中使用任何performSelector...的方法(参考 Table: Performing selectors on other threads) 4)使线程周期性工作 三,如何使用Run Loop对象 Run Loop对象提供了 添加输入源,定时器和Run Loop的观察者以及启动Run Loop 的接口,使用Run Loop包活获取--配置--启动--退出四个过程 1,获取Run Loop的对象 A,通过NSRunLoop获取 // 获得当前thread的Run loop NSRunLoop *myRunLoop = [NSRunLoop currentRunLoop]; // 将Cocoa的NSRunLoop类型转换程Core Foundation的CFRunLoopRef类型 CFRunLoopRef ç = [myRunLoop getCFRunLoop]; B,使用CFRunLoopGetCurrent()函数 2,配置Run Loop 所谓配置Run Loop主要是给Run Loop添加输入源,定时器或者添加观察者,即设置Run Loop模式。上面函数- (void

iOS开发~CocoaPods使用详细说明

你离开我真会死。 提交于 2020-03-08 09:36:27
一、概要 iOS 开发时,项目中会引用许多第三方库,CocoaPods( https://github.com/CocoaPods/CocoaPods )可以用来方便的统一管理这些第三方库(从一个坑出来,又进了另一个坑而已……)。 二、安装 由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下: 注:要使用 CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境 1、Ruby环境搭建 当前安装环境为Mac mini 10.8.5。Mac OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。 a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby) [objc] view plain copy print ? ritekiMac-mini:PodTest lucky$ ruby -v ruby 1 .8 .7 ( 2 0 1 2- 0 2- 0 8 patchlevel 3 5 8) [universal-darwin 1 2 .0] ritekiMac-mini:PodTest lucky$ b 更新ruby 终端输入如下命令( 把Ruby镜像指向taobao,避免被墙,你懂得) gem sources --remove

iOS开发实用技巧—项目新特性页面的处理

心不动则不痛 提交于 2020-03-08 09:25:16
说明: 本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理。 代码示例: 新建一个专门的处理新特性界面的控制器,可以实用代码也可以用xib,在这里实用纯代码方式,创建一个控制器NewfeatureViewController。 头文件代码: 1 // 2 // JMNewfeatureViewController.h 3 // 4 5 #import <UIKit/UIKit.h> 6 7 typedef enum:NSInteger 8 { 9 NewfeatureTypeFromeSetting, //从设置界面进入该页 10 NewfeatureTypeFromeWelcom, //第一次安装的时候进入 11 } NewfeatureType; 12 13 @interface JMNewfeatureViewController : UIViewController 14 15 @property(nonatomic,assign)NewfeatureType newfeatureType; 16 17 @end .m文件代码: 1 // 2 // JMNewfeatureViewController.m 3 // 4 5 #import "JMNewfeatureViewController.h" 6

iOS开发实用技巧—项目新特性页面的处理

痴心易碎 提交于 2020-03-08 09:24:41
iOS开发实用技巧篇—项目新特性页面的处理 说明: 本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理。 代码示例: 新建一个专门的处理新特性界面的控制器,可以实用代码也可以用xib,在这里实用纯代码方式,创建一个控制器 NewfeatureViewController。 头文件代码: 1 // 2 // JMNewfeatureViewController.h 3 // 4 5 #import <UIKit/UIKit.h> 6 7 typedef enum:NSInteger 8 { 9 NewfeatureTypeFromeSetting, //从设置界面进入该页 10 NewfeatureTypeFromeWelcom, //第一次安装的时候进入 11 } NewfeatureType; 12 13 @interface JMNewfeatureViewController : UIViewController 14 15 @property(nonatomic,assign)NewfeatureType newfeatureType; 16 17 @end .m文件代码: 1 // 2 // JMNewfeatureViewController.m 3 // 4 5 #import

iOS开发系列—Objective-C之Foundation框架

蹲街弑〆低调 提交于 2020-03-08 04:21:25
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有: Foundation概述 常用结构体 日期 字符串 数组 字典 装箱和拆箱 反射 拷贝 文件操作 归档 Foundation概述 为什么前面说的内容中新建一个类的时候我们都是选择Cocoa Class呢?Cocoa是什么呢? Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和IOS程序的原生面向对象API,为这两者应用提供了编程环境。 我们通常称为“Cocoa框架”,事实上Cocoa本身是一个框架的集合,它包含了众多子框架,其中最重要的要数“Foundation”和“UIKit”。前者是框架的基础,和界面无关,其中包含了大量常用的API;后者是基础的UI类库,以后我们在IOS开发中会经常用到。这两个框架在系统中的位置如下图: 其实所有的Mac OS X和IOS程序都是由大量的对象构成,而这些对象的根对象都是NSObject

iOS 开发技术栈与进阶

假如想象 提交于 2020-03-07 09:30:42
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道。”的时期,这里尝试列一下 iOS 开发的相关技术,再说说在学习进阶上我的一些想法。 iOS 技术栈 这里按我的理解给 iOS 相关技术分个类,以工程实现的角度,分成了基础、需求、效率、质量四个类别。基础指程序开发和 iOS 开发的基础知识和技能,需求就是产品的需求,有了基础技能,实现了产品需求后,剩下的事情就都是为了提高项目质量和提升开发效率。 大致的 思维导图 : 基础 基础包括语言、框架、内存、网络、存储、渲染、线程。 语言目前 iOS 开发就是 OC 和 Swift,国内仍以 OC 为主,对于 OC 除了语法外,最好了解它的对象模型,动态机制等特性。Swift 方面若要在团队里使用,目前还是风险大收益小的,但个人最好保持对它的关注。 框架就是 Foundation / UIKit 以及苹果系统封装好的各种框架,Foundation 和 UIKit 每个做 iOS 开发的人都熟知这套,iOS 功能越来越多,苹果提供的框架也越来越多,像 StoreKit / MessageUI / AVFoundation 等可以在使用到再去了解。 接着是客户端里最常见流程里的四个关键部分:从网络拉取数据,存储到本地文件系统

iOS开发拓展篇—CoreLocation定位服务

限于喜欢 提交于 2020-03-07 07:43:14
iOS开发拓展篇—CoreLocation定位服务 一、简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; 每隔多少米定位一次   @property(assign, nonatomic) CLLocationDistance distanceFilter; 定位精确度(越精确就越耗电)   @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 2.CLLocation CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等 (1)经纬度   @property(readonly, nonatomic) CLLocationCoordinate2D coordinate; (2)海拔   

iOS开发拓展篇—CoreLocation定位服务

让人想犯罪 __ 提交于 2020-03-07 07:42:40
一、简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; 每隔多少米定位一次   @property(assign, nonatomic) CLLocationDistance distanceFilter; 定位精确度(越精确就越耗电)   @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 2.CLLocation CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等 (1)经纬度   @property(readonly, nonatomic) CLLocationCoordinate2D coordinate; (2)海拔   @property(readonly,

iOS开发拓展篇—CoreLocation定位服务

依然范特西╮ 提交于 2020-03-07 07:42:09
iOS开发拓展篇—CoreLocation定位服务 一、简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; 每隔多少米定位一次   @property(assign, nonatomic) CLLocationDistance distanceFilter; 定位精确度(越精确就越耗电)   @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 2.CLLocation CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等 (1)经纬度   @property(readonly, nonatomic) CLLocationCoordinate2D coordinate; (2)海拔   

iOS开发拓展篇—CoreLocation定位服务

杀马特。学长 韩版系。学妹 提交于 2020-03-07 07:41:33
iOS开发拓展篇—CoreLocation定位服务 一、简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; 每隔多少米定位一次   @property(assign, nonatomic) CLLocationDistance distanceFilter; 定位精确度(越精确就越耗电)   @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 2.CLLocation CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等 (1)经纬度   @property(readonly, nonatomic) CLLocationCoordinate2D coordinate; (2)海拔