自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (3)
  • 收藏
  • 关注

转载 iOS 编写高质量Objective-C代码(二)

这篇将从面向对象的角度分析如何提高OC的代码质量。一、理解“ 属性 ”这一概念属性(@property)是OC的一项特性。@property:编译器会自动生成实例变量和getter和setter方法。下文中,getter和setter方法合称为存取方法For Example:@property (nonatomic, strong) UIView *qiShareView;...

2018-09-13 16:15:53 227

转载 iOS 编写高质量Objective-C代码(一)

前言:目前iOS开发主推的官方语言有两种:Objective-C 和 Swift。今天,小编帮助大家更加熟悉Objective-C,并且聊一聊如何才能编写高质量的OC代码。一、Objective-C的起源谈到Objective-C语言的出现,可要比Java还要早十多年。Java在1995年推出,而Objective-C早在1980年代就已经出现了。Objective-C (...

2018-09-13 15:58:35 280

转载 如何快速的开发一个完整的iOS直播app】(编解码原理)

为什么要编码编码就是压缩图像手机摄像头采集的都是一帧一帧的图片,只要每秒采集了24帧,看起来就比较流畅,视频就是由一帧一帧的图片构成的,常见图片格式png,jpg,一张图片2M,一秒钟30帧,那么1秒就是60M,这么多保存到本地是没问题,但是进行网络传输,尤其是在外网传输,每一秒传输60M,在中国是不可能达到这个带宽,那这时候就要对每一帧图象进行压缩带宽:每秒网络传输的数据,每秒10M,每秒传输1...

2018-03-10 14:41:31 588

转载 【如何快速的开发一个完整的iOS直播app】(礼物篇)

搭建礼物列表使用modal,设置modal样式为custom,就能做到从小往上显示礼物列表,并且能看见前面的直播界面礼物模型设计一开始创建3个礼物模型,保存到数组,传入给礼物View展示,本来礼物数据应该从服务器获取,这里没做了。到时候拿到礼物View就能拿到对应按钮,传给服务器就好了.礼物模型设计礼物模型用户模型(userID,userName),用于标志哪个用户发送,这里为方便测试,保证Use...

2018-03-10 14:40:35 1107

转载 如何快速的开发一个完整的iOS直播app】(点赞功能)

客户端代码点击小红心,发送socket给服务器,并且要传递房间Key给服务器,通知给哪个主播点赞,就能传入到对应的分组socket中怎么传递房间key,房间Key在主播界面,一般一个客户端,只会产生一个房间,可以记录到socket对象中业务逻辑:用户点击小红心,小红心就会往上慢慢飘。实现原理:其实就是一个动画。怎么实现:用UIView做不了,因为小红心是不规则的左右摆动,慢慢上去的。可以使用核心动...

2018-03-10 14:39:28 674

转载 如何快速的开发一个完整的iOS直播app】(创建房间)

直播(创建房间)1.进入主播界面,首先创建房间2.设计房间模型(key,名称),key作为房间的唯一标识,用来找到房间3.用socket创建房间,导入socket.io框架4.一般一个客户端一个socket就好了,可以搞个全局的socket5.客户端代码(需要封装) 1.一个获取全局的socket 2.一个连接方法封装6.可以在程序一启动的时候,就建立socket连接7.每次点击创建房间,直接发送...

2018-03-10 14:38:09 919

转载 【如何快速的开发一个完整的iOS直播app】(搭建Socket即时通讯服务器)

前言在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)在直播中,聊天和发礼物,需要用到及时通讯技术,市面上的App大多数采用的都是第三方SDK,融云,环信等,但是本例子采用websocket搭建及时通讯服务器。如果喜欢我的文章,可以关注我微博:袁峥Seemygo即时通讯即时通讯(Instant messaging,简称IM)是一个终端服务,允许两...

2018-03-10 14:36:59 379

转载 【如何快速的开发一个完整的iOS直播app】(搭建Web服务器)

前言在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)在直播中,创建房间,获取房间,都需要服务器,因此需要搭建Web服务器如果喜欢我的文章,可以关注我微博:袁峥SeemygoWeb服务器能处理HTTP请求的服务器都可以叫Web服务器Node.js介绍Node.js什么时候出现,2009年,Ryan Dahl(瑞恩·达尔)在GitHub上发布了最初...

2018-03-10 14:33:53 641

转载 【如何快速的开发一个完整的iOS直播app】(推流篇)

前言在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,肯定需要流媒体服务器,本篇主要讲解直播中流媒体服务器搭建,并且讲解了如何利用FFMPEG编码和推流,并且介绍了FFMPEG常见命令。如果喜欢我的文章,可以关注我微博:袁峥Seemygo效果Snip20161018_20.png一、安装HomebrewHomebrew简称br...

2018-03-10 14:32:02 1718 2

转载 【如何快速的开发一个完整的iOS直播app】(美颜篇)

前言在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,美颜功能是很重要的,如果没有美颜功能,可能分分钟钟掉粉千万,本篇主要讲解直播中美颜功能的实现原理,并且实现美颜功能。如果喜欢我的文章,可以关注我微博:袁峥Seemygo利用GPUImage处理直播过程中美颜的流程采集视频 => 获取每一帧图片 => 滤镜处理 =...

2018-03-10 14:30:05 257

转载 iOS开发之深复制和浅复制

摘要: 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。1、概述对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。如下图:再简单些说:浅复制就是指针拷贝;深复制就是内容拷贝。 2

2017-06-12 18:46:55 214

转载 Objective-C排序算法实现

算法作为程序猿的一种基本技能,对我来说却一直是一个硬伤。毕竟平时的工作接触算法的地方很少,大部分时间都是在搭建UI,写业务逻辑,写网络请求。然而在面试当中,算法往往又是考察的重点。也许你会说这些平时工作用得到么?确实,用到的很少,但是你不会,人家就是不要你,你能怎样?!关于这个事情,唐boy有篇文章,我觉得说的挺好,看完后也许你会所感触。http://blog.devtang.co

2017-05-19 23:54:30 220

转载 二叉树-你必须要懂!(二叉树相关算法实现-iOS)

这几天详细了解了下二叉树的相关算法,原因是看了唐boy的一篇博客(你会翻转二叉树吗?),还有一篇关于百度的校园招聘面试经历,深刻体会到二叉树的重要性。于是乎,从网上收集并整理了一些关于二叉树的资料,及相关算法的实现(主要是Objective-C的,但是算法思想是相通的),以便以后复习时查阅。什么是二叉树?在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树

2017-05-19 23:46:04 507

转载 Self & Super

在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:?1234567891011121

2017-05-13 21:18:22 185

转载 【iOS】Category VS Extension 原理详解

(一)Category1、什么是Category?category是Objective-C 2.0之后添加的语言特性,别人口中的分类、类别其实都是指的category。category的主要作用是为已经存在的类添加方法。除此之外,apple还推荐了category的另外两个使用场景。可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处。可以减少

2017-05-06 01:40:57 323

转载 iOS进阶(一)block与property

这篇读书笔记主要介绍了C语言内存分配、block疑难点、property的深入理解,自己对这三块做了系统性的总结,希望对你有所帮助。C语言内存分配Objective-C从名字来看就可以知道是一门超C语言,所以了解C语言的内存模型对于理解Objective-C的内存管理有很大的帮助。C语言内存模型图如下:1-1 C内存分配.png从图中可以看出内存被分成了5个

2017-05-06 01:38:20 530

转载 iOS进阶(二)Objective-C底层原理

这篇读书笔记主要介绍了Objective-C底层的一些东西,比如Objective-C对象模型、objc_msgSend消息发送原理、方法混写(Method Swizzling)和ISA混写(ISA Swizzling)。Objective-C对象模型我们都知道Objective-C是一门动态性语言,这种动态性的核心是objc提供的Objective-C运行时,比如objc_msg

2017-05-06 00:00:01 719

转载 iOS 成员变量,属性变量,局部变量,实例变量,全局变量 详解

成员变量:@interface MyViewController :UIViewControlle {    UIButton *yourButton;     int count;     id data; } 成员变量用于类内部,无需与外界接触的变量,成员变量默认是protected,一般情况下,非子类对象无法访问因为成员变量不会生成set、get方法,所以外界无法

2017-05-05 15:06:17 236

转载 轻松学习之 IMP指针的作用

本文转载自:http://www.cocoachina.com/ios/20150717/12623.html可能大家一直看到有许多朋友在Runtime相关文章中介绍IMP指针的概念,那么IMP究竟有什么实际作用呢?让我们先从一个函数看起来。Method Swizzling如果对Runtime有一定了解的话,一定听说过或者用过这个函数:

2017-04-06 18:18:19 235

转载 iOS开发多线程篇——线程安全

本文转载自:http://www.cnblogs.com/wendingding/p/3805841.html一、多线程的安全隐患资源共享1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源比如多个线程访问同一个对象、同一个变量、同一个文件当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题示例一:示例

2017-04-06 11:58:28 356

转载 AVAudioSession 音频会话类别简介

本文转载自:https://www.swiftmi.com/topic/133.htmlAVAudioSession类由AVFoundation框架引入,AVAudioSession是一个单例模式,也就是说,不用开发者自行实例化.每个IOS应用都有一个音频会话。这个会话可以被AVAudioSession类的sharedInstance类方法访问,如下: import AVFo

2017-04-06 10:52:14 586

转载 iOS- 关于AVAudioSession的使用——后台播放音乐

本文转载自:http://www.cnblogs.com/qingche/p/4366335.html1.前言  •AVAudioSession是一个单例,无需实例化即可直接使用。AVAudioSession在各种音频环境中起着非常重要的作用•针对不同的音频应用场景,需要设置不同的音频会话分类 1.1AVAudioSession的类别  •A

2017-04-06 10:32:44 677

转载 iOS应用架构谈 view层的组织和调用方案

本文转载自:https://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de-zu-zhi-he-diao-yong-fang-an.htmliOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构

2017-03-30 16:08:08 488

原创 WKWebview的那些坑之白屏问题

项目中用到WKWebview的童鞋有可能会遇到突然页面白屏问题,这个问题是因为内存不够了webview的进程被程序终止了,那我们如何监听到进程被终止的事件以及做何处理呢?(一)监听WKWebview进程终止iOS9时系统提供了一个监听方法- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView N

2017-03-26 21:20:11 14862 3

原创 WKWebview的那些坑之iOS8加载问题

最近有不少用户反馈作业H5页面显示不出来,反馈用户大都是iOS8系统的,由于公司没有iOS8系统的测试机,当时适配iOS8时在模拟器上测试过,都是正常的。通过不断的打印日志打包在第三方测试平台上远程测试,发现h5文件根本没有加载,根据这条线索,在网上查找很多资料说iOS8要将h5的文件拷贝到temp目录下才能加载,于是我按照这种方法处理后再打包远程测试,webview还是加载不出来,通过观察日志,

2017-03-26 20:50:53 5839 2

转载 iOS图形图像及核心动画实战三GCD基础知识

本教程是一个合集,涉及到的目录结构:基础知识总结Block基础知识GCD实战CoreGraphics & ImageIO实战CoreAnimation实战Grand Central Dispatch(GCD)概要Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定

2017-03-19 22:04:40 269

转载 Effective Objective-C Notes:GCD 实现同步锁

Effective Objective-C Notes》系列博文整理自《Effective Objective-C 2.0》本文名为《GCD 实现同步锁》,内容不止于锁。文章试图通过 GCD 同步锁的问题,尽量往外延伸扩展,以讲解更多 GCD 同步机制的内容。引语:线程安全问题如果一段代码所在的进程中有多个线程在同时运行,那么这些线程就有可能会同时运行这段代码。

2016-09-23 01:30:08 215

转载 iOS 保持界面流畅的技巧

这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案GPU 资源消耗原因和解决方案AsyncDisplayKitASDK 的由来ASDK 的资料ASDK

2016-09-14 11:44:25 197

转载 iOS离屏渲染优化(附DEMO)

本文授权转载,作者:seedante(简书)离屏渲染(Offscreen Render)objc.io出品的Getting Pixels onto the Screen的翻译版《绘制像素到屏幕上》应该是国内对离屏渲染这个概念推广力度最大的一篇文章了。文章里提到「直接将图层合成到帧的缓冲区中(在屏幕上)比先创建屏幕外缓冲区,然后渲染到纹理中,最后将结果渲染到帧的缓冲区中要廉价很多。因

2016-09-14 11:38:58 464

转载 深入理解RunLoop

RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。IndexRunLoop 的概念RunLoop 与线程的关系RunLoop 对外的接口RunLoop

2016-09-13 17:35:33 201

转载 iOS app性能优化的那些事(一)

iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功能上面,比较少去考虑性能的问题,可能这其中涉及到objective-c,c++跟lua,优化起来相对复杂一些,导致应用在比如touch等较低端的产品上,光从启动到进入页面就花了将近一分钟的时间,页面之间的切换没有那种很流畅的感觉,内存也居高不下,比较影响应用的用户体验,所以很有必要进行一些优化,下面记

2016-09-13 17:32:15 309

转载 iOS app性能优化的那些事(二)

这次我们来说说iOS app中滑动的那些事。iOS为了提高滑动的流畅感,特意在滑动的时候将runloop模式切换到UITrackingRunLoopMode,在这个过程中专心做跟滑动相关的工作,这也就是在滑动过程中为什么nstimer无法工作的原因,因为两个没在同一mode下面。但我们可能经常会遇到滑动不怎么流畅的情况,比如在项目中碰到在滑动tableview的时候不怎么顺畅,感觉有点不爽,即便是

2016-09-13 17:14:24 720

转载 性能调优

在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性。Core Animation功能和性能都非常强大,但如果你对背后的原理不清楚的话也会降低效率。让它达到最优的状态是一门艺术。在这章中,我们将探究一些动画运行慢的原因,以及如何去修复这些问题。CPU VS GPU关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代

2016-09-13 10:21:25 627

转载 最快让你上手ReactiveCocoa之进阶篇

前言由于时间的问题,暂且只更新这么多了,后续还会持续更新本文《最快让你上手ReactiveCocoa之进阶篇》,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+ReactiveCocoa实战开发。如果喜欢我的文章,可以关注我,微博:袁峥Seemygo,欢迎交流。也可以来小码哥,了解下我们的iOS培训课程。之后还会更新1.ReactiveCocoa常见操作方法介绍。

2016-09-12 13:56:26 361

转载 最快让你上手ReactiveCocoa之基础篇

前言很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCocoa,这里非常感谢3个人(支点的雷纯锋,camera36

2016-09-12 13:53:24 261

转载 【如何快速的开发一个完整的iOS直播app】(采集篇)

前言在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,首先需要采集主播的视频和音频,然后传入流媒体服务器,本篇主要讲解如何采集主播的视频和音频,当前可以切换前置后置摄像头和焦点光标,但是美颜功能还没做,可以看见素颜的你,后续还会有直播的其他功能文章陆续发布。如果喜欢我的文章,可以关注我微博:袁峥Seemygo,也可

2016-09-12 13:37:22 908

转载 【如何快速的开发一个完整的iOS直播app】(播放篇)

前言在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,集成ijkplayer成功后,就算完成直播功能一半的工程了,只要有拉流url,就能播放直播啦本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【ijkpla

2016-09-12 13:35:35 2033 1

转载 【如何快速的开发一个完整的iOS直播app】(原理篇)

前言大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播。如果喜欢我的文章,可以关注我微博:袁峥S

2016-09-12 13:33:32 4876 1

转载 iOS 组件化方案探索

看了 Limboy(文章1 文章2) 和 Casa (文章) 对 iOS 组件化方案的讨论,写篇文章梳理下思路。首先我觉得”组件”在这里不太合适,因为按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而这里提到的是较大粒度的业务功能,我们习惯称为”模块”。为了方便表述,下面模块和组件代表同一个意思,都是指较大粒度的业务

2016-09-12 13:28:07 221

转载 微信读书 iOS 性能优化总结

微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来。最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对性的性能问题优化。本文将从发现问题、解决问题和预防问题三个方面进行总结。如何发现性能问题不同于一般的 bug,性能问题因为并没有统一的标准,而且与用户的机器环境相关性较大,所以往往

2016-09-12 11:58:02 1275

扫雷游戏课程设计

很好的扫雷游戏课程设计代码实现,希望对你有用哦!

2014-02-09

iphone开发技巧UI篇之实现CheckBox

ios中很好的实现CheckBox的方法。

2014-02-09

非常好的连连看课程设计

C++课程设计《连连看》,非常好!希望能对大家有所帮助!

2013-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除