- 博客(62)
- 收藏
- 关注
转载 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
概览随着移动互联网的发展,如今的手机早已不是打电话、发短信那么简单了,播放音乐、视频、录音、拍照等都是很常用的功能。在iOS中对于多媒体的支持是非常强大的,无论是音视频播放、录制,还是对麦克风、摄像头的操作都提供了多套API。在今天的文章中将会对这些内容进行一一介绍:音频音效音乐音频会话录音音频队列服务视频MPMoviePlayerControllerMPMov
2017-03-15 17:16:40
646
转载 iOS应用架构谈 组件化方案
iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案简述前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路。我不认为这条组件化之路蘑菇街走对了。分享后我私聊了Li
2017-03-09 17:01:04
415
转载 iOS应用架构谈 本地持久化方案及动态部署
iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案前言嗯,你们要的大招。跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给我提issue
2017-03-09 16:59:59
408
转载 iOS应用架构谈 网络层设计方案
iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworkin
2017-03-09 11:05:06
348
转载 iOS应用架构谈 view层的组织和调用方案
iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案前言《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间
2017-03-09 09:44:05
399
转载 iOS应用架构谈 开篇
缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢?当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈上追问了几个问题之后,我觉得有必要开个博客专门来讲讲一些个人见解。其
2017-03-08 17:00:56
270
转载 iOS移动端架构的那些事
原文出处: kuailejim(@kuailejim) 引言:一个app的初始阶段,必然是先满足各种业务需求。然后,经过多次版本迭代之后,先前的由于急于满足需求而导致的杂乱代码则会充斥整个项目。而此时,项目有了一定的规模,有了一定数量的开发人员,那么为了达到快速迭代版本的需求,则是需要有一个强大的架构来支撑。在开始谈app架构之前,曾经我一度认为,一个好的app就是需要
2017-03-08 10:07:38
914
原创 NSURLSession实现断点续传
NSURLSession VS NSURLConnection NSURLSession可以看做是NSURLConnection的进化版,其对NSURLConnection的改进点有: * 根据每个Session做配置(http header,Cache,Cookie,protocal,Credential),不再在整个App层面共享配置.* 支持网络操作的取消和断点续传* 改进了
2017-03-02 15:58:37
717
转载 iOS网络层架构设计分享
声明:转载请注明出处:http://www.jianshu.com/p/05a59197a7c7前些天帮公司做了网络层的重构,当时就想做好了就分享给大家,后来接着做了新版本的需求,现在才有时间整理一下。之前的网络层使用的是直接拖拽导入项目的方式导入了AF,然后还修改了大量的源码,时隔2年,AF已经更新换代很多次了,导致整个重构迁移非常的麻烦。不过看着前辈写的代码,肯定也是一个高
2017-03-01 17:05:00
721
转载 GCD介绍: 基本概念和Dispatch Queue
iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOperationQueue 面向对象的线程技术ØGCD —— Grand Central Dispatch
2017-02-28 14:13:14
340
转载 IOS多线程之NSOperation
一:NSOperation // 1.简介// NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。// NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:// 1> Foundation框架提供了两个具体子类直接供我们使用:NS
2017-02-27 17:29:10
274
转载 多线程编程2 - NSOperationQueue
一、简介一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的。也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步执行的。创建一个操作队列:[java] view plain copyNSOperationQueue *queue = [[NS
2017-02-27 17:27:52
307
转载 iOS多线程篇:NSThread
一、什么是NSThreadNSThread是基于线程使用,轻量级的多线程编程方法(相对GCD和NSOperation),一个NSThread对象代表一个线程,需要手动管理线程的生命周期,处理线程同步等问题。二、NSThread方法介绍1)动态创建1NSThread * newThread = [[NSThread allo
2017-02-27 14:05:19
270
原创 button扩大可点击范围
一个扩大按钮点击范围的小技巧,在不改变frame的前提下,可通过以下方法实现:关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因此,我们可以为任何对象增
2017-02-24 14:19:55
2302
转载 使用Xcode和Instruments调试解决iOS内存泄露
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实
2017-02-09 10:42:44
376
转载 iOS函数式编程初探
本篇文章主要回顾一下——iOS函数式编程,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助。作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit;Masonry是一个OC开发中,非常好用的自动布局的第三方框架;SnapKit是Masonry团队打造的Swift版本的自动布局框架;如果你没有用过,在自动布局中用的是苹
2017-01-17 15:40:35
396
转载 微信小程序实例源码大全下载
小程序QQ交流群:131894955 小程序开发直播腾讯课堂: https://ke.qq.com/course/172343#tuin=1a9027ba微信小程序实例源码大全下载微信小应用示例代码(phodal/weapp-quick)源码链接:https://github.com/phodal/weapp-quick微信小应用地图定位demo
2017-01-10 17:14:05
636
转载 让UIViewController中的viewDidLoad和viewWillAppear各司其责
你是否有过这样的感觉:有时某些代码是放到viewDidLoad还是viewWillAppear:中,这很容易让人混淆。在Stack Overflow上经常会遇到这样的问题:viewDidLoad和viewWillAppear到底哪个方法先被调用?实际上,理解这些方法的去向,以及为什么会这样并不重要,重要的是需要知道这些方法的作用,以及它们是如何与程序协调分工的。我们知道,一般iOS应用程序
2016-12-21 16:14:27
721
转载 ios - loadView与viewDidload
从打印结果可以看出,先调用loadView再调用viewDidload代码://// ViewController.m// test//// Created by 裴波波 on 16/4/12.// Copyright © 2016年 裴波波. All rights reserved.//#import "ViewController.h"@interface V
2016-12-21 14:57:24
991
原创 subview的管理
添加addSubview:insertSubview:atIndex: (放到index层,越往下,index越小)insertSubview:aboveSubview:(把前一个View放在后一个View 的上面)insertSubview:belowSubview:(把前一个View放在后一个View 的下面)整理bringSubview
2016-12-21 13:59:47
472
转载 iOS一个丝滑的全屏滑动返回手势
原文 http://blog.sunnyxx.com/2015/06/07/fullscreen-pop-gesture/全屏返回手势 自 iOS7 之后,Apple 增加了 屏幕边缘右划返回 交互的支持,再配合上 UINavigationController 的交互式动画,pop 到上一级页面的操作变的非常顺畅和丝滑,从此,我很少再使用点击左上角导航栏上的返回按钮的
2016-12-20 16:44:50
1821
转载 iOS两个App应用之间的跳转
摘要: 步骤: 1,添加URL Types项 2,配置URL Scheme 3,其他应用的跳转 4,参数的接收开发IOS项目的时候,有可能会遇到两个APP应用相互调用的需求,比如说:支付宝支付......等等。下面来详细介绍实现的步骤:1,添加URL Types项a,打开项目中info.plist文件,在infomation property list项下面增加一项
2016-12-15 16:11:42
329
原创 oc可以调用swift
oc调用swift的设置方法如下: 1、确保将框架 target 的 Build Settings > Packaging > Defines Module 设置为 Yes 2、将 build setting 中的 Product Module Name 修改为工程名。 之后的项目会自动生成swift的头文件头文件名称为Product Module Nam
2016-12-15 15:53:53
590
原创 JS与原生OC互相调用方法
在此只总结一些方法,详细做法待更新~~1.在JS 中做一次URL跳转,然后在OC中拦截跳转。(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做。)2.利用WKWebView 的MessageHandler。3.利用系统库JavaScriptCore,来做相互调用。(iOS 7推出的)4.利用第三方库WebV
2016-12-15 15:48:08
430
转载 iOS适配HTTPS 双向认证 (AFNetworking)
static AFHTTPRequestOperationManager *rom =nil;我是封装了一下 Sharemanger, rom.securityPolicy = [self customSecurityPolicy]; //设置HTTPS的验证类 + (AFSecurityPolicy*)customSecurityPolicy{
2016-12-13 11:10:53
848
转载 IOS Https适配摸索
https封面在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能。也就是说,自2017年起,网络请求必须由http改成https。正因为这个原因,我也打算尝试下适配Https网络请求。由于先前没有配置服务器经验,网上说的也很不详细,因此踩了不少坑,足足花了一天的时间。
2016-12-13 10:20:55
497
转载 iOS 开发之支付宝调起出现 ALI40247 解决方案
解决方案链接:https://openclub.alipay.com/read.php?tid=250&fid=2一.如何签约APP支付接口 第一步:进入管理中心:https://openhome.alipay.com/platform/appManage.htm 第二步:选择或者创建一个应用,再选择功能信息-》申请功能-》勾选APP支付-》确定添加。 第三步:点击上方
2016-12-03 15:18:11
1078
转载 史上最详细的iOS之事件的传递和响应机制
前言:按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应)其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEven
2016-12-01 10:05:21
349
转载 关于Xcode8 iOS10下NSLog不输出的问题
昨天升级了Xcode8beta版,兴高采烈的打开工程启动模拟器后发现自己的NSLog输出在console中看不到了,查阅Xcode8 release note后发现官方的中有这么一段When debugging an app running on Simulator, logs may not be visible in the console. Workaround: Use com
2016-10-31 16:45:43
2223
转载 IOS下的 NSTimer与Run loop Modes
一.NSRunLoop在Cocoa中,每个线程(NSThread)对象中内部都有一个run loop(NSRunLoop)对象用来循环处理输入事件,处理的事件包括两类,一是来自Input sources的异步事件,一是来自Timer sources的同步事件;run Loop在处理输入事件时会产生通知,可以通过Core Foundation向线程中添加run-loop obse
2016-10-14 10:24:48
247
转载 【IOS学习】Core Graphics 框架学习笔记,以及demo
Core Graphics是基于C的API,可以用于一切绘图操作Core Graphics 和Quartz 2D的区别quartz是一个通用的术语,用于描述在iOS和MAC OS X ZHONG 整个媒体层用到的多种技术 包括图形、动画、音频、适配。Quart 2D 是一组二位绘图和渲染API,Core Graphic会使用到这组API
2016-09-27 16:56:14
298
转载 微信小程序开发环境搭建
微信小程序可谓是今天最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会给移动端App带来一个寒冬,身为一个Android开发者我是不相信的,即使有,那也是很遥远的未来。不管微信小程序是否能颠覆当今的开发格局,我们都要以好奇的心态去接收,去学习。不排斥新技术,所以,心动不如行动,赶紧先搭建一个微信小程序开发工具。那么接下来就让我们
2016-09-24 09:55:50
4052
转载 利用NSURLSession实现https请求
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. /* https原理: 1,客户端请求服务器,如果是第一次请求,服务器返回向客户
2016-09-23 16:36:04
1859
原创 iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
1 .该文主要介绍如何使用NSURLSession来发送GET请求和POST请求2 .本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求一、简单说明 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相
2016-09-23 15:27:17
416
转载 关于iOS多线程,你看我就够了
在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使用 Swift 和 Objective-c 两种语言讲解,双语幼儿园。OK,let't begin!概述这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是串行、什么
2016-09-23 11:32:55
466
原创 iOS并发开发简要整理
在多核处理器没有大范围使用开来的时候,就有了多线程的概念,iOS的并发开发也不是新东西了。本篇文章主要是对iOS开发当中经常涉及到的并发内容所做的简要整理,把学过的用过的东西重新整理到笔头上。0. 并发的初衷记得大学上专业课的时候,老师曾经经常提问一个问题——“并发”vs.“并行”。简单对比下,并行基本上就是同时进行,而并发不一定保证两个线程同一时刻在同时作业,而可以体现为同一个时
2016-09-23 10:35:46
267
转载 iOS 程序引入framework 类别报错unrecognized selector sent to class
背景在ios开发过程中,有时候会用到第三方的静态库(.a文件),然后导入后发现编译正常但运行时会出现selector not recognized的错误,从而导致app闪退。接着仔细阅读库文件的说明文档,你可能会在文档中发现诸如在Other Linker Flags中加入-ObjC或者-all_load这样的解决方法。那么,Other Linker Flags到底是用来干什
2016-09-22 10:16:08
4155
转载 ios10适配
iOS开发 适配iOS10以及Xcode8现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木有下载过来试试呢?就我的使用来说,总体觉得苹果还是坑不断,但是也在一直进步的啦。下面我就来说说,iOS10的适配以及Xcode8使用上的
2016-09-20 11:32:32
905
转载 ReactiveCocoa框架菜鸟入门(五)——信号的FlattenMap与Map
文章背景本文是在阅读《ReactiveCocoa入门教程:第一部分》一文后,提出的一些补充。主要是比较深入的研究了信号(Signal)的FlattenMap与Map与Map方法。读者应该至少了解信号的概念,以及信号的基本操作。问题提出有时候,我们需要把一个异步的API用信号的方式来表示。比如,点击登录按钮后异步的访问服务器,当获取到数据的时候再调用订阅者的处理方法。
2016-09-19 14:23:19
1111
转载 ReactiveCocoa框架菜鸟入门(四)——信号(Signal)详解
基础知识在阅读本文之前,请确保你已成功导入ReactiveCocoa框架并对信号(Signal)和订阅者(Subscriber)有基本了解。或者尝试着完全理解以下一段内容:信号是数据流,可以被绑定和传递。可以把信号想象成水龙头,只不过里面不是水,而是玻璃球(value),直径跟水管的内径一样,这样就能保证玻璃球是依次排列,不会出现并排的情况(数据都是线性处理的,不会出现并发情况)。
2016-09-19 14:22:14
732
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人