iPhone
文章平均质量分 84
彳亍而行的博客
iOS软件工程师,3年多经验; 熟悉数字信号处理; 有一定算法基础; 正在学习iOS音频;
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS设备上回声消除的例子
Apple在Core Audio中提供了回声消除的接口,我写了一个测试APP,测试了其效果。链接:<https://github.com/lixing123/iOSEchoCancellation>原创 2015-06-02 11:03:14 · 23062 阅读 · 11 评论 -
Objective-C中.h文件、.m文件中@interface、@synthesize及其它
1. 为什么.h文件和.m文件里各有1个`@interface`?它们分别有什么用?2. .h中,value1为什么要定义2遍?3. `@synthesize`有什么用?。。。原创 2015-07-29 23:14:00 · 14316 阅读 · 3 评论 -
用UIImageView自带方法实现简单动画
UIImageView有一组关于动画的方法/参数,可以实现简单的动画。 然而这种方法是个鸡肋,占资源,效果不咋地,无法实现细腻的、动态的动画;而且,还有更好的替代方式,比如直接播放gif动画,简单方便。 对于细腻复杂的动画,就需要调用Core Animation了。原创 2015-08-10 22:22:47 · 5043 阅读 · 0 评论 -
.xcodeproj目录中各文件作用及SVN/Git同步
iOS项目多人开发时同步项目,经常会遇到.xcodeproj中文件的改动,这些文件都有什么用?要不要提交到版本库中?本文进行了一番梳理。原创 2015-08-16 10:58:16 · 11093 阅读 · 1 评论 -
使用Reveal来查看别人的APP界面+白苹果不刷机解决方案
一个很方便的用Reveal查看别人APP界面的方法,而且在此过程中,偶然发现万能的白苹果不刷机解决方案,妈妈再也不用担心我的iPhone被乱搞成白苹果了!原创 2015-07-23 22:05:42 · 3010 阅读 · 0 评论 -
iOS Today Extension/widget编程小记
本文高屋建瓴地从App Extensions讲解到Today Extension;介绍了如何从头开始创建一个Today Extension;探讨了一些经常碰到的问题;点出了Today Extension要注意的地方及其限制;最后展望了一些需要深入学习的点。原创 2015-08-31 22:48:13 · 4590 阅读 · 3 评论 -
iOS8/9的Notification新特性
在iOS8和iOS9下,Notification增加了一些新的特性,使之更加强大: iOS8增加了下拉时的Action按钮,像微信一样; iOS9增加了像信息一样的可以下拉直接输入;原创 2015-09-11 17:56:26 · 3322 阅读 · 4 评论 -
比Wireshark更轻量、更方便的抓包软件:Charles
Wireshark虽然功能很强大,但学习成本很高,操作很麻烦。Charles是一个非常轻量的软件,简单方便。Request、Response都很清晰,方便查看。原创 2015-01-16 14:38:31 · 37433 阅读 · 3 评论 -
<Learning Core Audio>翻译:关于作者
关于作者Chris Adamson是一位独立作家,编辑和开发者,居住在密歇根大急流城。他现在专注于iOS和Mac开发,他与别人合著了iOS SDK Development(Programmers, 2012)。他还写了QuickTime for Java:A Developer’s Notebook(O’Reilly Media,2005),与别人合著了...原创 2016-12-30 09:45:23 · 1268 阅读 · 0 评论 -
一行代码搞定Weex蓝牙开发
缘起之所以做这个项目,是因为公司要尝试用Weex做开发,以减少开发工作量,达到一个人搞定前端的目标。设想当中,如果顺利的话,一个人可以同时搞定iOS/Android两端的开发,尤其是UI方面的开发。传统的工作方式中,同一个UI设计需要iOS/Android两个平台实现基本一致的开发,非常浪费。在此过程中,因为业务需要,要能够连接蓝牙设备,而Weex本身(基本上)只提供UI层的封装。为了也能够达到一次原创 2017-05-24 09:29:17 · 7836 阅读 · 3 评论 -
问题解决:AVAudioSession的中断处理方法失效
背景知识:在iOS中,app录音/播放时,有可能会出现被系统中断的情况,比如手机来电话,闹钟,日历事件等等。这时候,系统会中断当前的音频操作,并向app发送一个通知;如果用户点了“忽略”,或者挂断电话等,系统会将声音权限还给app,并再次向app发送通知。原创 2015-12-16 21:56:32 · 7686 阅读 · 0 评论 -
iOS多线程总结
总览iOS多线程开发的技术,主要包括pthread、NSThread、GCD、NSOperation;其中pthread/NSThread用的情况不多,而GCD和NSOperation用的比较频繁,所以是重点。本文详细介绍了GCD和NSOperation/NSOperationQueue等iOS的多线程解决方案。原创 2017-05-31 23:05:02 · 502 阅读 · 0 评论 -
iOS KVC/KVO总结
概述KVC和KVO是什么?简单来说,KVC(Key-Value Coding)是通过key-value对的方式,能够获取到/设置一个object的属性/参数,即使这个属性并未暴露在外。这其实属于黑魔法一类的东西,可以得到用”正常”方式实现不了的功能。当然,它的实际用处不止这些。KVO(Key-Value Observing)则是苹果提供的监听属性变化的方法。在一些UI和属性绑定的操作里,可以利用这个原创 2017-06-05 15:46:07 · 1758 阅读 · 0 评论 -
iOS Runtime总结
接触到runtime,就是进入了Objective-C语言的本质。在这里,Objective-C语言的特性,都可以得到解答,因为Objective-C的面向对象特性就是用Runtime方式实现的。。。原创 2017-06-01 16:43:16 · 999 阅读 · 0 评论 -
iOS内存管理的问题总结
retain/assign/strong/weak/copy的区别这几个关键字在声明变量的时候经常遇到,那么它们有什么区别,应该如何选择呢?这些关键字的主要区别,在于对内存的管理。Objective-C的内存管理机制和引用类别首先,要介绍一下Objective-C的内存管理机制。Objective-C对内存的管理,以一种叫做“retain count”的方式来管理。对于一个对象,当它被new/all原创 2017-05-26 23:10:51 · 2375 阅读 · 0 评论 -
iOS RunLoop总结
为什么要有RunLoop我们知道,一个线程,在整个生命周期中,很可能大部分时间都是没有事情可做的,有事情需要处理的时间总是比较短的。在没有事情处理的时候,线程应该怎么办呢?我们会希望它处于“休眠”状态,就是不要占用CPU资源,而在用到它的时候,再被“唤醒”。这种机制,叫作”Event Loop”,即事件驱动型的。扯一点远的,在生活当中,我们也会喜欢这样的处理方式。比如,前段时间我不小心开车闯了一次红原创 2017-06-08 16:30:03 · 1062 阅读 · 0 评论 -
iOS音频格式转换工具库:ExtAudioConverter
一个音频格式转换的开源库,包含了iOS/OS X支持的所有音频格式,另外也支持mp3格式。原创 2015-05-09 15:23:49 · 6885 阅读 · 18 评论 -
收藏的一系列教程帖子,很适合有一定基础,想要进阶的同学
以前收藏的帖子,对技术讲的很细致,是某个大牛翻译的苹果官方技术指南,我每一篇都看了好几遍,非常有收获!多线程编程指南:http://www.cocoachina.com原创 2013-05-21 19:43:12 · 1818 阅读 · 2 评论 -
快速解决PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28))
最近升级了Xcode之外,重新编译运行项目的时候,出现一个问题:PCH file built from a different branch ((cla原创 2013-05-22 10:32:49 · 5649 阅读 · 0 评论 -
Instruments文档阅读笔记
Chapter2Instruments包含各种Library。可以修改Library的视图模式——通过action menu。可以新建一个自定义的Instrument静态分组:action menu--new group。可以创建智能分组new smart group;每个智能分组都必须包含一个规则;规则的定义包括:Label:匹配Instrument的名字;Used Within:按最近原创 2012-05-15 00:42:14 · 3521 阅读 · 0 评论 -
《胎动计数》软件开发过程
前段时间,刚到公司实习的时候,做了一款小应用,胎动计数。最近准备进行改进,顺便将设计的过程写一下。刚开始做这个小应用的时候,可以说是一点都不懂,只知道写代码。当时是了解一点胎动的知识,然后开始写逻辑。想到哪写到哪。写完之后(我当时自认为的),就感觉没什么事情做了,傻等界面UI做好后朝里填。做了大概一个月吧,然后回来考试,同事帮我把剩下的完成。就是现在这个版本。最近想对它进行修改,于是花了一原创 2012-06-25 21:17:01 · 4323 阅读 · 0 评论 -
objective-c中interface与protocol的作用
以前对objective-c中的interface,即头文件的作用一直不太清楚。最近看了一些文章,再加上自己的试验,对头文件的作用稍有了解。在我看来,头文件的作用是,定义对外的接口。然而,它的作用也只有这个而已。头文件无法保证对外接口一定会被实现。根据.h文件是否定义方法、.m文件是否实现方法,可以分为三类:第一类是.h文件定义方法,.m文件也实现了方法,这是最common的做法,原创 2012-07-12 00:04:05 · 5708 阅读 · 0 评论 -
Block的优点
关于Block的语法我就不讲了,请看这篇文章。刚开始学习block的时候,觉得比较奇怪,block到底有什么用?它和函数有什么区别?经过一番学习,主要是这篇文章,发现block有以下几个地方最有用:1.简化的回调过程,不用再实现并调用某个函数,如Notification的方法,以前是这么写:[[NSNotificationCenter defaultCenter] ad原创 2012-07-01 22:39:16 · 4514 阅读 · 0 评论 -
UIApplication详解
以前刚学iPhone开发时,觉得UIApplication这个东西特NB,特神秘,比如它居然能打开一个URL,而且还是用一个很神秘的方法得到实例:[UIApplication sharedApplication]它对我的神秘感一直保持到今天下午。今天下午负责UI设计的同事在设计,我没有素材,比较清闲,于是发个狠,专门看了一下UIApplication这个类。果然是难者不会,会者不难,看完之后,原创 2012-07-23 22:02:37 · 9347 阅读 · 1 评论 -
用代码初始化ViewController的View
闲话一点:看来大学的学习内容还是有用的,即使是我们觉得毫无作用的内容:至少它们开拓了我们的眼界,让我们知道还有这样一门技术。由于上学期学习了软件测试,就一直想应用于真实的代码测试中去。但是最近一直觉得iPhone应用有一些独特之处。这种独特之处是所有基于界面的软件所共有的:移动应用,网页应用等。仔细一想,其实所有的软件都是基于界面的嘛。。。iPhone应用之独特之处在于:它拥有庞大的与界面原创 2012-06-05 22:57:42 · 6669 阅读 · 0 评论 -
navigationbar增加背景图片,适配4.3和5.0
在5.0上有一个很方便的函数,但是在4.3上不能用。下面这段代码对于4.3和5.0版本都可以。先重写UINavigationBar的drawRect函数:@implementation UINavigationBar (CustomImage)- (void)drawRect:(CGRect)rect {UIImage *image = [UIImage ima原创 2012-10-18 14:25:35 · 1645 阅读 · 0 评论 -
提交应用遇到"Missing Screenshot"问题的解决方法
这两天在提交应用时遇到各种各样的问题,其中一个比较纠结的问题是在万事俱备,二进制文件已经Archive、Validate和Distribute之后,iTunes Connect上却显示"Missing Screenshot"。奇怪,我已经提交了5张"iPhone and iPod touch Screenshots"了啊,怎么回事?到Google上搜索,发现在iPhone 5出来之后,苹果给开发者原创 2012-10-31 11:08:27 · 5400 阅读 · 0 评论 -
iOS录音和播放的那些事儿:几个奇葩的需求
在插入带麦克风的耳机时,要求能够从耳机麦克风录音,然后同步的从手机内置扬声器播放。原创 2015-01-26 18:12:29 · 9709 阅读 · 6 评论 -
iOS代码修改音量
虽然苹果将几乎所有的代码实现控制音量的方法都堵死了,但通过一些私有的方法还是可以修改的。。。原创 2015-01-06 18:09:04 · 6258 阅读 · 2 评论 -
多线程导致的iOS闪退分析
前段时间做了一个APP,在测试的时候遇到了很奇怪的闪退情况。这个APP是有关声音处理的:设备一边录音,一边对声音进行处理。所以需要2个线程,一个线程将录音保存下来,另一个处理保存下来的声音。测试的时候,会在1~10min之内,不定时、无预兆的出现闪退的情况,报的错也各不一样,有的是1)”NSGenericException ‘Collection was mutated while原创 2014-12-25 18:04:00 · 10343 阅读 · 0 评论 -
真机调试问题解决:Code Sign error: A valid provisioning profile matching the application's Identifier
最近碰到一个非常诡异的问题。在真机调试的时候,碰到了:Code Sign error: A valid provisioning pr原创 2013-05-25 19:38:44 · 11598 阅读 · 3 评论 -
KVC与KVO的用处
在刚刚学习KVC时,我感觉这个东西非常奇怪:它完全可以用"."操作符替代,而且"."更加简单方便。为什么还会有这样一个东西呢?说起来,KVC的作用还真不大,原创 2012-07-15 00:29:47 · 3793 阅读 · 0 评论 -
iOS中使用GCD/多线程:在下载的过程中显示动画
GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目,如果你是一个追求软件效率的开发人员,这门技术你一定要有所研究。今天要介绍的是如何从网上下载大量的文件, 方法有许多,传通的就是用多线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些方法,而是原创 2013-05-22 14:44:01 · 3246 阅读 · 0 评论 -
【新手教程】如何向App Store提交应用
当你克服重重困难终于开发出了自己的App,下一步就是向App Store提交应用了,这时应该如何操作呢?我的App真的准备好提交了?我敢肯定这些问题将会浮现在你的脑海。基于这篇教程,我将告诉你一个完整的提交过程。原创 2013-05-21 20:37:00 · 2524 阅读 · 0 评论 -
iPhone图片拉伸:resizableImageWithCapInsets
今天做了一个温度计的应用,需要一个图,能够根据输入的数据将温度计里面的红色图片拉伸。为了达到这个效果,使用了iOS5的函数:resizableImageCapInsets:(UIEdgeInsets)Insets。最近终于申请到苹果开发者账号!搞的好烦啊!给大家带福利了!想真机调试,上架应用,将IPA打包给朋友用,或者申请开发者账号的请联系我!我的QQ号:593原创 2012-05-22 01:35:55 · 43435 阅读 · 3 评论 -
一些iOS面试题答案
什么时候使用copy关键字?在使用NSString、NSArray、NSDictionary时,经常用copy关键字。原因:这些类有对应的mutable子类,如果不用copy的话,有可能会在其它地方被修改,造成不可预知的后果;什么时候使用weak关键字,和assign有什么不同?在防止引用循环时,可以用weak来解决;和assign的不同:(1)在对象释放掉后,weak的属性是nil,而assign原创 2017-06-14 10:47:05 · 1990 阅读 · 0 评论
分享