自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(329)
  • 资源 (22)
  • 收藏
  • 关注

原创 iOS Mach 异常、Unix 信号 和NSException 异常

前言Crash的主要原因是你的应用收到了未处理的信号。未处理信号可能来源于三个地方:kernel、其他进程、以及App本身。因此,crash异常也分为三种:Mach异常:是指最底层的内核级异常。用户态的开发者可以直接通过Mach API设置thread,task,host的异常端口,来捕获Mach异常。 Unix信号:又称BSD 信号,如果开发者没有捕获Mach异常,则会被host层的方法ux_exception()将异常转换为对应的UNIX信号,并通过方法threadsignal()将信

2020-07-07 16:20:14 924

原创 汇编定位 objc_msgSend + 16 出错的问题

前言:本文涉及到汇编的部分基础,对汇编不懂的同学可以先看看iOS汇编入门-arm64基础这篇文章。先看下出错堆栈#0 ThreadSIGSEGVSEGV_ACCERR0 libobjc.A.dylib 0x000000018de86f30 objc_msgSend + 161 HLLCourseLive 0x0000000100318ee0 0x0000000100060000 + 28546242 AVFAudio 0x00000001a843d2a8

2020-06-18 15:07:03 1003

原创 iOS Crash栈的捕获和分析

在iOS应用开发和线上运行的过程中,我们总会被反馈到各种各样的崩溃。很多崩溃通过case的描述,就能很快的重现并得到修复,但是更多的崩溃也许这一辈子就发生这么一次,也许我们永远不知道它什么时候再会出现。同时,就算我们捕获到一个Crash栈,由于版本环境等种种原因,或者发生崩溃的代码我们就无法得到它详细的源码,我们往往会对着一片全是程序指令偏移量的Crash栈一脸蒙蔽。基于以上事实,我们需要从Crash栈的捕获和分析这两个角度进行深入的了解。本博客主要内容分为两部分:OC中的Crash异常的总结

2020-06-11 20:21:44 1142

原创 iOS 汇编入门 - arm64基础

前言iOS 中常见的架构有 armv7、armv7s、arm64、i386、x86_64 这些。其中, armv7 、armv7s 、arm 64 都是 ARM 处理器的指令集,i386 、x86_64 是 Mac 处理器的指令集这些指令集对应的机型有以下这些:arm64e: iphone XS | iphone XS Max | iPhoneXRarm...

2020-02-27 13:54:20 1503

原创 使用 Charles 解决部分App无法上网的问题(SSL Pinning)

设置好 Charles 代理之后发现打开目标 App debug 的时候弹窗“网络异常”提醒,测试 Safari 正常和其他 App 发现大部分都可以打开。Google之后发现这是因为该 App 使用了SSL Pinning 的原因。SSL Pinning 意味着 App 拷贝了一份服务器的公钥在本地,在进行网络连接的时候使用了本地的公钥进行加密了。由于 Charles 的密钥无法匹配导致拒接...

2019-10-22 11:24:04 7833 1

翻译 一次编译同时启动多个模拟器

原文 https://buildingvts.com/launch-multiple-ios-simulators-on-a-single-compile-985fd2ad5eb1 当你写完自动布局需要测试在不同模拟器上的运行效果时你是否很头疼,需要一个一个模拟器去启动运行。这时候如果可以一编译就同时启动多个模拟器那该是多么好啊。XCode 9 有一个新的特性——允许...

2018-04-04 15:48:58 4111

翻译 iOS高级调试&逆向技术-汇编寄存器调用

前言本文翻译自Assembly Register Calling Convention Tutorial 序言通过本教程,你会可以看到CPU使用的寄存器,并探索和修改传递给函数调用的参数。还将学习常见的苹果计算机架构以及如何在函数中使用寄存器。这就是所谓架构的调用约定。 了解汇编是如何工作的,以及特定架构调用约定是如何工作是一项极其重要的技能。它可以让你在没有源码的情况下,观察和修改传递给函数的参数

2017-07-13 18:20:50 8099 8

原创 分离静态库架构

先来看一段 MakeFile 脚本:OUT = libkugouplayer_VIPER3DRender.aOBJS = \ ../../Limiter.cpp \ ../../ViPER3DEffect.cpp \ ../../../AudioEffect.cppINCLUDE = -I../../../ \ -I.

2017-05-18 11:17:45 1048

原创 ARC 下 C++/OC 混编计数器的问题

ARC 模式下,object-C 编写的代码的内存管理都交给了自动引用计数器了,不用我们自己再去操心内存的管理,但使用 Core Foundation 框架或者是和 C++ 混编时,代码的内存还是需要我们自己去管理的,这时候就需要注意了!Core Foundation 主要是由不透明类型(opaque type),即 C 结构体组成,语言层面并不支持继承和多态,而 Core Foundation能够

2017-05-16 20:54:37 1649

原创 拷贝头文件shell

简单的拷贝头文件的话其实一个命令就可以搞定了find ./ -type f -not -name "*.h" -delete然后 copy 到你想要的地方,但这样做得不够完全,会出现一些空的目录,而且每次都要手动去敲命令,还是觉得挺麻烦的。所以还是写一个脚本执行好点,如上图,想要的 copy 的是 include 里面的头文件。脚本如下:#!/bin/bashheader_path=$SRCROO

2017-05-03 17:03:05 1608

原创 AVAudioSessionInterruptionNotification not called

问题描述:监听了系统的打断事件,在来电的时候有收到系统打断的 AVAudioSessionInterruptionTypeBegan 通知,却没有收到 AVAudioSessionInterruptionTypeEnd 通知。[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:n

2016-08-01 17:39:51 10034

原创 重定向 NSLog 输出到文件

问题:在 iOS 的开发过程中总是离不开 Debug,调试的时候都是依靠 XCode log 输出来追踪确定问题。但如果离开了 XCode 的时候仍然想看到日志的输出,比如在调试 App 与硬件的交互的时候,这时候应该怎么办?解决思路:方法一:第一反应是,写个类似于 NSLog 的输出函数,把想要的查看的信息输出到 view 上就好了。但很快就否决了,原因有2个:每

2016-07-03 21:22:43 2124

原创 iOS 编译包含 bitcode 的 opencore-amr-iOS 静态库

下载 opencore-amr-iOS 源码。修改 build_ios_xcode6.sh 脚本,以下加粗的部分为修改的内容。#!/bin/sh### Modified from http://blog.csdn.net/favormm/article/details/6772097set -xeDEVELOPER=`xcode-select -print-path`DEST=`pwd

2016-06-20 18:09:12 5040 1

原创 iOS 编译包含 bitcode 的 x264 静态库

1、首先下载 x264 的源码 git clone git://git.videolan.org/x264.git# cd x2642、编译脚本在这里。3、将编译脚本下载下来,打开 build-x264.sh ,在所有的 CFLAGS="... -fembed-bitcode" 后面加上 -fembed-bitcode ;然后将 build-x264.sh 放在和 x264

2016-06-20 15:59:26 4006

原创 iOS 编译包含 bitcode 的 fdk-aac 静态库(包含 arm64)

不多说了,这里是编译脚本。下载下来这个编译脚本后,修改一下 CFLAGS 选项,添加 -fembed-bitcode ,如下:细心的话,你设置一下 XCode 的 bitCode 选项的 enable 为 YES 的话,在 sourcetree 里查看批文件的修改也可看到其实修改到的也是这一行。有几点要注意的:1、它这个脚本使用的是 0.1.3 的 fdk-aac ,最新版的在这里

2016-06-17 17:18:37 3223

转载 谈谈 WebSocket

对于一些例如 IM、金融、股价、视频会议等这样一些应用来说,所需要的不过是高实时、低延时。针对于这一需求,现在有哪些比较好的可选方案呢?目前比较流行的是 socket 和 websocket。Socket首先,Socket 其实并不是一个协议。它工作在 OSI 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般是TCP 或 UDP )而存在的一个抽象层。Socke

2016-05-26 23:26:04 3771

转载 漫谈 iOS Crash 收集框架

为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙 Crash 统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。是否集成越多的 Crash 日志收集服务就

2016-05-26 17:17:40 1592

原创 调节音量时隐藏系统提示框(Hide device volume HUD when adjust the volume)

有这样一个需求,在特定页面调节系统音量的时候需要隐藏系统的音量 HUD 提示框。首先想到的是肯定是找控制系统音量的那个类,查找一下有没有对应的接口提供,过了一下 MPMusicPlayerController 并没有找到我需要的接口。又 Google 了一下,找到了设置音量的类 MPVolumeView ,根据 stackoverflow 上的答案,说是这样设置MPVolumeView *

2016-05-02 23:07:11 5840

转载 Swift编程的15个技巧

转载链接:http://geek.csdn.net/news/detail/58593自2014年9月1.0版发布后,Savvy的应用开发团队就开始在iOS项目中实验并使用Swift。不过由于Swift相对还很新,当时大多项目仍在使用Objective-C;自从2015年9月Swift 2.0版本发布以来,我们已经开始改用Swift来编译新的项目了。实际上在2016年1月,我们大多数的

2016-03-02 15:44:07 2770

转载 实现一个TODO宏

文章转自 sunnyxx 的博客:http://blog.sunnyxx.com/2015/03/01/todo-macro/实现一个TODO宏实现一个能产生warning的TODO宏,用于在代码里做备忘,效果:下面一步步来实现这个宏。Let’s do it手动让编译器报警(报错)可以用以下几个方法:123

2015-12-05 16:12:15 1180

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

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

2015-11-19 09:41:23 7380 1

转载 afnetworking_downloadFile_example

- (IBAction)downloadFile:(id)sender { NSURL *url = [NSURL URLWithString:@"http://www.hulkshare.com/dl/qw30o7x373a8/stan_courtois_&_felly_vs_cutting_crew_-_die_in_your_arms_(x-centrik_mix)_%5B_www

2015-10-28 18:36:57 895

原创 XCode 7.1 发送HTTP请求报错解决办法

昨天刚刚升级了XCode 7.1,然后在使用MPMoviePlayerController 播放在线流视频的时候报了HTTP的错误,如下:Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions

2015-10-27 12:22:27 2288

原创 Object-C 零碎知识点笔记

1、记录代码片段运行时间double begin = mach_absolute_time();[self refreshSongImageInNewLogic];double end = mach_absolute_time();NSLog(@"time cost = %f",MachTimeToMilliSecond(end - begin)); //毫秒double ...

2015-10-16 14:39:59 1254

转载 为什么说,你纯看代码而没有碰到这个场景你就算看懂了也没法理解?(关于并发)

为什么说,你纯看代码而没有碰到这个场景你就算看懂了也没法理解?我碰到了一个什么问题?来说一个场景,打开你的Instagram,如果手机有VPN,请连接上VPN.打开搜索页面,连续输入m,i,k,e.你会发现,小菊花转了4次.可以想象,客户端向服务端发起了4个请求,搜索的字段分别是"m","mi","mik","mike".那么问题来了.这四次搜索肯定是并发的,也就是

2015-09-23 22:59:26 900

原创 在Darwin层建立Notification监听锁屏/解屏事件

判断屏幕锁屏/解锁://// ViewController.m// TestScreenLockDemo//// Created by aaron.zheng on 2015-09-21.// Copyright © 2015 aaron.zheng. All rights reserved.//#import "ViewController.h"#include

2015-09-21 15:29:56 3323

原创 初识ios音频相关类

AVAsset 是一个播放音频和视频的抽象类。比较常用到的是它的子类 AVURLAsset ,通过 URL 实例化它。AVComposition 是用于时间编辑的。要播放一个AVAsset实例,需要先初始化一个 AVPlayerItem 实例,使用 AVPlayerItem 去设置一些初始化状态(例如:timeRange),然后将 player item 提供给 AVPlayer

2015-09-14 15:03:50 3009

转载 Streaming iPod Audio Tracks From Disk With Core Audio

There are two questions that often arise for iOS developers new to Apple’s audio frameworks: (1) How do I play tracks from the iPod Library using the low level Core Audio APIs (as opposed to using an

2015-09-12 14:20:29 1189

转载 Xcode Server Tutorials: 3. Prebuild & Postbuild Scripts

This article is Part 3 of a whole series called Xcode Server Tutorials. Check out Part 2 first if you haven't already. New posts are always tweeted by me (@czechboy0) on Twitter.Great to s

2015-09-09 23:30:36 609

转载 Xcode Server Tutorials: 2. Integrations

This article is Part 2 of a whole series called Xcode Server Tutorials. Check out Part 1 first if you haven't already. New posts are always tweeted by me (@czechboy0) on Twitter.Ok, time t

2015-09-09 23:29:17 786

转载 Xcode Server Tutorials: 1. Getting Started

This article is Part 1 of a whole series called Xcode Server Tutorials. New posts are always tweeted by me (@czechboy0) on Twitter.We all know how it works. Your iOS teammate works on a feat

2015-09-09 23:27:38 1864

转载 iOS音频播放 (八):NowPlayingCenter和RemoteControl

文章转自:http://msching.github.io/blog/2014/11/06/audio-in-ios-8/距离上一篇博文发布已经有一个月多的时间了,在这其间我一直忙于筹办婚礼以至于这篇博文一直拖到了现在。在之前一到六篇中我对iOS下的音频播放流程进行了阐述,在第七篇中介绍了如何播放iPod Lib中的歌曲,至此有关音频播放的话题就已经完结了,在这篇里我将

2015-09-06 18:49:08 2371

转载 iOS音频播放 (七):播放iPod Library中的歌曲

文章转自:http://msching.github.io/blog/2014/09/07/audio-in-ios-7/由于最近工作量非常饱和,所以这第七篇来的有点晚(创建时间是9月7日。。说出来都是泪)。现在市面上的音乐播放器都支持iPod Library歌曲(俗称iPod音乐或者本地音乐)的播放,用户对于iPod音乐播放的需求也一直十分强烈。这篇要讲的是如何来播放iP

2015-09-06 18:45:19 2491

转载 iOS音频播放 (六):简单的音频播放器实现

文章转自:http://msching.github.io/blog/2014/08/09/audio-in-ios-6/在前几篇中我分别讲到了AudioSession、AudioFileStream、AudioFile、AudioQueue,这些类的功能已经涵盖了第一篇中所提到的音频播放所需要的步骤:读取MP3文件 NSFileHandle解析采样率、码率、时长等信息,分

2015-09-06 18:43:39 5328 2

转载 iOS音频播放 (五):AudioQueue

文章转自:http://msching.github.io/blog/2014/08/02/audio-in-ios-5/在第三篇和第四篇中介绍了如何用AudioStreamFile和AudioFile解析音频数据格式、分离音频帧。下一步终于可以使用分离出来的音频帧进行播放了,本片中将来讲一讲如何使用AudioQueue播放音频数据。AudioQueue介绍Audi

2015-09-06 18:40:55 1821

转载 iOS音频播放 (四):AudioFile

文章转自:http://msching.github.io/blog/2014/07/19/audio-in-ios-4/接着第三篇的AudioStreamFile这一篇要来聊一下AudioFile。和AudioStreamFile一样AudioFile是AudioToolBoxframework中的一员,它也能够完成第一篇所述的第2步,读取音频格式信息和进行帧分离,但事实上它的功

2015-09-06 18:38:25 1087

转载 iOS音频播放 (三):AudioFileStream

文章转自:http://msching.github.io/blog/2014/07/09/audio-in-ios-3/本来说好是要在第三篇中讲AudioFileStream和AudioQueue,但写着写着发现光AudioFileStream就好多内容,最后还是决定分篇介绍,这篇先来说一下AudioFileStream,下一篇计划说一下和AudioFileStream类似的Au

2015-09-06 18:35:17 1613

转载 iOS音频播放 (二):AudioSession

文章转自:http://msching.github.io/blog/2014/07/08/audio-in-ios-2/本篇为《iOS音频播放》系列的第二篇。在实施前一篇中所述的7个步骤之前还必须面对一个麻烦的问题,AudioSession。本篇主要介绍关于AudioSession使用、期间需要注意的地方以及可能面临的坑。AudioSession简介

2015-09-06 18:32:05 1000

转载 iOS音频播放 (一):概述

文章转自:http://msching.github.io/blog/2014/07/07/audio-in-ios/从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究。写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=。=)。

2015-09-06 18:27:06 1169

转载 iOS应用架构谈 网络层设计方案

前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetworkKit啥的其实也都还不错,但前者已经弃坑,后者也在弃坑的边缘。在实际的App开发中,Afnetworking已经成为了事实上各大App的标准配置。网络层在

2015-08-25 22:05:37 1269 1

fdk-aac-0.1.3(包含bitcode)

fdk-aac-0.1.3 源码,里面也包含了一个已经编译好的包含所有架构的 libfdk-aac.a , 要自己编译的话看这里啦 http://blog.csdn.net/chaoyuan899/article/details/51701100

2016-06-17

CKCalendarView

IOS之使用CKCalendar做datePicker,实现日历的一个下拉选择,通过实现代理方法可定制自己想要的功能,如不能选择当前日期之前/之后的。

2014-06-09

优化UITableViewCell滚动性能demo

优化UITableViewCell滚动性能,使用到Loren Brichter在Twitter中写到得关于UITableViewCell流畅滚动的内容。

2014-05-10

TPKeyboardAvoidingScrollView(view自动上滚,避免遮住输入框)

TPKeyboardAvoidingScrollView用于在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件 使用方法: 将TPKeyboardAvoidingScrollView.h和TPKeyboardAvoidingScrollView.m add进工程中 在需要用键盘自动上滚的controller的xib文件中,找到view,修改其Class为TPKeyboardAvoidingScrollView就可以了 可以参照BSPickerController.xib中看看

2013-09-23

Object-C内存管理2-对象之间的内存管理

博客相关源码下载,对应博文http://blog.csdn.net/chaoyuan899/article/details/10355669

2013-08-26

好友列表(multimap实现)

多映射示例:multimap 实现的简单好友列表。

2013-05-29

Windows异步套接字网络编程

本程序基于windows的异步消息机制,采用异步套接字WSAsoket,详细设计实现了客户端、服务器端的即时消息通讯,是做聊天室(单人聊天、多人聊天)的一个很好的例子,编程工具采用VC++(MFC). 附注:本程序是从别人那里下载过来的,看不惯其过高的资源积分,自己就上传了一份,东西是用来分享的,尤其是在学习阶段,有分享才有进步嘛. 相关资源可看孙鑫经典20集教学视频的第16集.

2013-04-30

基于UDP的简单可视化界面聊天程序(c/c++)

socket编程,基于UDP的简单可视化界面聊天程序,,局域网内可用,刚开始学socket编程的娃儿可以看一下,共勉。

2013-04-27

Prolific usb-to-serial comm port 驱动 for win7win8

解决usb-to-serial的问题,win8亲测可用,注意安装的时候以管理员身份win7兼容性运行,安装完成之后点击“更新驱动程序软件”才可用。 文档描述支持以下系统: Supports the following Windows OS Family: - Windows 2000 SP4 - Windows XP SP2 and above (32 & 64 bit) - Windows Server 2003 (32 & 64 bit) - Windows Vista (32 & 64 bit) - Windows 7 (32 & 64 bit) - Windows Server 2008 / 2008 R2 (32 & 64 bit)

2013-04-27

基于UDP的简单字符界面的聊天程序

用c写的一个基于UDP的简单字符界面的聊天程序,附带解释说明的word文档。

2013-04-24

FSCapture_7.0_XiaZaiBa(滚动截图).exe

FSCapture_7.0_XiaZaiBa(滚动截图).exe

2013-04-21

OpenGL教程_NeHe_源代码_1-48

OpenGL教程_NeHe_源代码_1-48

2013-03-10

Visual C++MFC编程实例

本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。全书共分四部分进行介绍,第一部分是基础知识,第二部分讲述用户界面的实例,第三部分讲述MFC内部处理方面的实例,第四部分讲述打包实例。全书基本上面向实例进行阐述,讲解透彻、易于掌握。本书既可作为初学者和大专院校师生的自学参考书,也可作为计算机软件开发人员的技术参考书。

2013-03-06

软件工程项目编写模板与示例

文档包括以下内容: 基于多元交流的手机支付购物平台概要设计说明书 基于多元交流的手机支付购物平台详细设计说明书 网上商城项目需求规格说明书 在线音乐系统项目计划

2013-01-06

OJ题目及源码

学校OJ网站的题目及源码 网址:http172.21.85.19ZQUOJhomeHomePage.jsp 想提高编程水平的娃儿平时可以练一练

2012-12-28

网络数据库课程设计

实验一~实验四都是对department表和custom表的增、删、查、改操作 实验一,嵌入sql代码, 实验二,用存储过程实现 实验三,用三层架构实现 实验四,用Ling实现 实验五,对Produc表的操作,使用Ajax技术查询。 附注:导入数据库,直接打开DiaryPro的.sln后缀名的文件即可运行

2012-12-28

DBHelper类

微软DBHelper,封装了对数据库的一些常用操作

2012-12-23

JDBC连接Oracle

JDBC连接Oracle,附带两个教学视频

2012-10-26

employeeProject

我的第一个比较正规的、专业化的、用面向对象方法编程的employeeProject,留下来小小纪念一下。

2012-10-15

Visual.Assist.Crack

Visual.Assist.Crack编程助手工具,破解版,将文件夹里面的.dll文件复制到安装文件夹下,that's all!

2012-08-30

C语言流程图生成器(免注册版)

一款强大的C语言流程图生成器(免注册版),可以将生成的流程图直接导出到word、pdf等。

2012-06-19

《数据结构》树的相关操作

基于C语言的树的相关操作:新建、插入、删除、函数递归及非递归的遍历、层遍历

2011-06-25

空空如也

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

TA关注的人

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