- 博客(366)
- 收藏
- 关注
转载 iOS runtime探究
本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向:从runtime开始: 理解面向对象的类到面向过程的结构体从runtime开始: 深入理解OC消息转发机制从runtime开始: 理解OC的属性property从runtime开始: 实践Category添加属性与黑魔法method swizzling从runtime开始: 深入w...
2018-03-30 08:04:25
488
原创 C与OC、C++的区别
C与OC、C++的区别C语言的特点:1)C语言是结构化语言,层次清晰,调试和维护比较容易2)表现能力和处理能力比较强,可直接访问内存的物理地址3)c语言实现对硬件的编辑,c语言课用语系统软件的开发,也可用语应用软件的开发,是集高级语言和低级语言的功能一体。4)C语言效率高,可移植性强。C++语言特点:1、在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序...
2018-03-20 00:38:07
928
转载 runloop内部实现逻辑
苹果在文档里的说明,RunLoop 内部的逻辑大致如下:其内部代码整理如下 :可以看到,实际上 RunLoop 就是这样一个函数,其内部是一个 do-while 循环。当你调用 CFRunLoopRun() 时,线程就会一直停留在这个循环里;直到超时或被手动停止,该函数才会返回。RunLoop 的底层实现从上面代码可以看到,RunLoop 的核心是基于 mach port 的,其进入休眠时调用的函...
2018-03-13 12:12:55
910
原创 逆向分析最常用的有三种方法是什么?怎样防止反编译?
网络分析通过分析和篡改接口数据,可以有效的破解通过接口数据来控制客户端行为的app,常用的抓包工具有Tcpdump, WireShark, Charles等,windows平台有fidller静态分析通过砸壳、反汇编、classdump头文件等技术来分析app行为,通过这种方式可以有效的分析出app实用的一些第三方库,甚至分析出app的架构等内容,常用的工具有dumpdecrypted(砸壳)、h...
2018-03-13 09:33:16
2962
转载 WKWebView学习笔记
一、简介webView是我们日常开发中不可缺少的一个组件,通常我们都是使用UIWebView来实现的,不过大多数情况下,UIWebView的表现却不尽如人意(最直观的就是内存消耗严重,特别是有视频的时候,有木有!)iOS8之后苹果推荐使用WKWebView替代UIWebView,其主要的有点有:在性能、稳定性WKWebView更多的支持HTML5的特性WKWebView更快,占用内存可
2017-11-28 22:56:01
494
原创 UIPopoverPresentationController
UIPopoverPresentationController怎么使用?UIPopoverPresentationControllerl类实例不需要直接创建,因为在UIViewController中有一个popoverPresentationController属性,可以从它获取。这里给出基本的使用方法:第一步:创建一个UIViewController类的实例,
2017-11-28 22:22:52
960
原创 如何取消GCD任务
第一种:dispatch_block_cancel iOS8之后可以调用dispatch_block_cancel来取消(需要注意必须用dispatch_block_create创建dispatch_block_t) 代码示例:- (void)gcdBlockCancel{ dispatch_queue_t queue = dispa
2017-11-26 19:57:06
3922
原创 利用runtime解决数组crash
当我们把数据插入到数组的时候,需要先判断该对象是否为空值,非空才能插入,否则会引起崩溃。那么有没有一种方式,可以从根本上解决,即使我插入的是空值,也不会引起崩溃呢:1.继承于这个类,然后通过重写方法(很常用,比如基类控制器,可以在视图加载完成时做一些公共的配置等)2.通过类别重写方法,暴力抢先(此法太暴力,尽量不要这么做)3.swizzling(本文特讲内容)Swizzling原理在
2017-11-26 19:39:27
726
原创 Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全
Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全学习地址https://blog.cnbluebox.com/blog/2014/07/01/cocoashen-ru-xue-xi-nsoperationqueuehe-nsoperationyuan-li-he-shi-yong/
2017-11-25 13:44:18
246
原创 避免滑动tableView时NSTimer 暂停
NSTimer *timer = [[NSTimer alloc]init]; timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeLabelDisplay) userInfo:nil repeats:YES]; NSRunLoop *main = [N
2017-11-25 13:25:29
432
原创 - (void)dealloc { __weak __typeof(self)weak_self = self; NSLog(@"%@", weak_self); }代码崩溃问题
objc[4572]: Cannot form weak reference to instance (0x160f6f890) of class MFChatRoomBoardController. It is possible that this object was over-released, or is in the process of deallocation.(lldb) er
2017-11-25 13:06:49
737
转载 iOS 推送全解析,你不可不知的所有 Tips!
本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解。以下是 pikacode 使用 iOS 推送的一些经验,欢迎互相交流,指出错漏之处。推送服务可以说是所有 App 的标配,不论是哪种类型的 App,推送都从很大程度上决定了 App 的 打开率、使用率、存活率 。因此,熟知并掌握
2016-10-10 16:56:12
768
转载 IOS使用AVAudioPlayer播放mp3歌曲文件并监听来电打断
本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放、暂停、继续操作,音乐音量控制、播放进度显示,同时监听来电打断事件一、控件初始化- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.
2016-10-10 15:23:11
2270
转载 iOS MPMoviePlayerController播放视频及添加监听事件
iOS提供了叫做MPMoviePlayerController MPMoviePlayerViewController两个类,可以轻松用来实现视频播放。MPMoviePlayerViewController只能全屏播放视频。本文转自,查看原文请戳这里#import "MainViewController.h"#import@interface MainViewController (
2016-10-10 15:22:03
2287
转载 iOS开发UI篇—iPad开发中得modal介绍
简单介绍 说明1: 在iPhone开发中,Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止说明2: 在iPad开发中,Modal的使用频率也是非常高的 对比iPhone开发,Modal在iPad开发中多了一些用法 二、呈现样式 (一)什么叫呈现样
2016-10-10 14:34:24
634
转载 【最新】Xcode 8 打包教程
相信iOS开发者们更新了iOS 10之后除了吐槽越来越像安卓之外,吐槽的更多的也是Xcode的一系列问题,本次Xcode 的变化无非是 大概以下三点: 1.各种其妙log的打印 2.一些权限的添加 3.证书添加了自动管理证书功能 4.打包的问题 关于第一个和第二个的问题,参见链接,这是转载别
2016-10-09 17:43:45
10036
转载 零基础学习PS——Photoshop的167个技能
经典的Photoshop技巧大全,如果你是初级阶段的水平,熟读此文并掌握,马上进阶为中级水平。 1. 快速打开文件 双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口。 2. 随意更换画布颜色 选择油漆桶工具并按住Shift点击画布边缘,即可设置画布底色为当前选择的前景色。如果要还原到默认的颜色,设置前景色为
2016-10-08 12:12:36
1638
转载 【迷之技巧】5秒教你从 iOS 10降级到iOS 9
自从升级了ios 10,你的iphone是否超级卡顿,就像拿块砖一样,分分钟有想砸掉他的冲动~~~ 没关系,小编教你秒变轻松达人,让你的砖头快速恢复往日的光彩 那么究竟如何从iOS10 Beta版降级回iOS9.3.5正式版,这里需要用到电脑哦,快快准备起来! 第一步,超级重要哦,一定要备份数据,一定要备份数据,一定要备份数据,重要的事情说三遍,然后关闭“查找我的iP
2016-10-08 11:55:40
2767
转载 二维码的介绍
二维码的介绍二维条码/二维码是用某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的总结: 用图形记录标记一些信息,方便通过图形识别来获取信息应用场景信息获取(名片、地图、WIFI密码、资料)手机电商(用户扫码、手机直接购物下单)手机支付(扫描商品二维码,通过银行或第三方支付提供的手机端通道完成支付
2016-10-08 11:23:48
766
转载 如何快速的开发一个完整的iOS直播app(美颜篇)
在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,美颜功能是很重要的,如果没有美颜功能,可能分分钟钟掉粉千万,本篇主要讲解直播中美颜功能的实现原理,并且实现美颜功能。如果喜欢我的文章,可以关注我微博:袁峥Seemygo,也可以来小码哥,了解下我们的iOS培训课程。后续还会更新更多内容,有任何问题,欢迎简书留言袁
2016-09-29 10:58:38
1700
转载 iOS10 推送必看(基础篇)
iOS10更新之后,推送也是做了一些小小的修改,下面我就给大家仔细说说。希望看完我的这篇文章,对大家有所帮助。一、简单入门篇—看完就可以简单适配完了相对简单的推送证书以及环境的问题,我就不在这里讲啦,我在这里说的,是指原有工程的适配。1.首先我们需要打开下面的开关。所有的推送平台,不管是极光还是什么的,要想收到推送,这个是必须
2016-09-27 16:16:49
746
转载 iOS 10 推送必看(高阶1)
iOS10 推送必看(基础篇)虽然这篇文章比较长,也不好理解,但是还是建议大家收藏,以后用到的时候,可以看看,有耐心的还是读一读。这篇文章开始,我会跟大家好好讲讲,苹果新发布的iOS10的所有通知类。一、创建本地通知事例详解:注意啊,小伙伴们,本地通知也必须在appdelegate中注册中心,通知的开关
2016-09-27 16:13:47
348
转载 iOS图片设置圆角性能问题
iOS开发一般我们在iOS开发的过程中设置圆角都是如下这样设置的。 avatarImageView.clipsToBounds = YES; [avatarImageView.layer setCornerRadius:50];这样设置会触发离屏渲染,比较消耗性能。比如当一个页面上有十几头像这样设置了圆角会明显感觉到卡顿。注意:png图片UIImageView
2016-09-27 16:07:24
543
转载 开发者所需要知道的 iOS 10 SDK 新特性
总览距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多任务特性等等。Apple 近年都是在 WWDC 发布新的系统
2016-09-23 16:48:13
279
转载 活久见的重构 - iOS 10 UserNotifications 框架解析
TL;DRiOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。对于开发者来说,相较于之前版本,iOS 1
2016-09-23 16:45:12
504
转载 iOS "The sandbox is not in sync with the Podfile.lock"解决方案
更新Cocoapod之后出现问题:[plain] view plain copydiff: /../Podfile.lock: No such file or directory diff: Manifest.lock: No such file or directory error: The sandbox is not in
2016-09-23 15:31:33
356
转载 Xcode如何打包ipa安装包
右键工程,选择“打开方式”->“Xcode"”在Xcode中设置发布证书。选择“Product”->"Edit Scheme..."打开如下界面在“Build Configuration”中选择“Release”,单击"OK"选择菜单栏中的"Product"->"Archive"之后等等待几
2016-09-23 10:14:38
349
转载 视频源码免费下载
Android学习视频源码免费下载:http://v.itcast.cn/map/21.html?1609lxwqunjava学习视频源码免费下载:http://v.itcast.cn/map/22.html?1609lxwqunPHP学习视频源码免费下载:http://v.itcast.cn/map/23.html?1609lxwqunUI学习视频源码免费下载:http://v.it
2016-09-21 16:55:22
2584
转载 iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合
iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合
2016-09-21 10:18:50
574
转载 iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题
iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题
2016-09-21 10:14:06
811
转载 iOS图片拉伸技巧—— resizableImageWithCapInsets
iOS图片拉伸技巧—— resizableImageWithCapInsets
2016-09-20 14:49:20
505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人