自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随记

iOS码农,《iOS程序设计第2版》译者,专注移动互联网,专注开发。

  • 博客(105)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用fastlane spaceship 批量自动创建内购素材

使用fastlane spaceship 批量自动创建内购素材背景背景当然是产品同学发过来22个AR内购素材要提交,这个啥感觉做过的人都知道,不想多说了。(此处应有表情包)方案这时候只能选择fastlane spaceship了,spaceship本来是个独立的项目,后来被fastlane收编进来,为pilot,boarding和deliver等工具提供和 iTC 和 ADC 的交...

2020-05-02 22:23:45 1055 3

原创 使用fastlane deliver 自动上传App Store Connect 物料和截图

使用fastlane deliver 自动上传App Store Connect 物料和截图背景时光荏苒,2019年还剩下不到100天了,今年发生了很多事情(省略2w字)。最终iOS商店页物料上传的工作,辗转最终准备交给开发团队来处理。运营丢过来的物料有6个国家,10种语言,每个语言6~7张截图,各种主标副标变更,更新点文案,哇的一下就哭出来了。程序员懒癌发作,经过大概30s...

2020-03-08 11:00:42 3449

原创 Flash Builder生成asdoc格式的帮助文档

打开 运行-》外部工具-》外部工具配置创建一个程序 位置(L):C:\Program Files\Adobe\Adobe Flash Builder 4.7\sdks\4.6.0\bin\asdoc.exe工作目录(D):${project_loc} 自变量(A):-source-path src -doc-sources src-external-li

2013-01-30 21:16:17 3679

原创 如何防止文件被备份到iCloud 和iTunes?

应用有一些文件需要永久的存储在本地使应用支持离线功能。但是这些文件并不包含用户数据,无需备份。如何防止这些文件被备份。在iOS上,应用负责确保只有用户数据而不包含应用数据被备份到iCloud和iTunes上。具体的步骤在不同的iOS 版本各有不同。所以对不同的版本进行区分描述。关于具体哪些数据不应该被备份,参见App Backup Best Practices section of the

2013-01-24 17:05:44 5826

原创 从iPhone应用中启动App Store

如何从我自己的应用中启动App Store?同时如何链接到商店中我自己的应用?-[UIApplication openURL:] 可以处理传入的链接到应用和媒体NSURL 对象,启动对应的商店应用。根据以下步骤获取链接,可以是应用,歌曲,itunes中的专辑,同时链接它到你的iPhone应用。在电脑中启动iTunes搜索你要添加的项目右击或者control点

2012-12-28 15:56:22 3893

原创 为什么在Zombies调试时代码表现不一致?

在一些操作系统中,开启Zombies调试功能会对ARC代码的行为有一些副作用。包括iOS和OS X应用都会受影响。这在iOS 6或更新以及在OS X 10.8或更新中已经被修复。在iOS 6 / OS X 10.8之前, 使用 the Zombies instrument 或 NSZombieEnabled ,或者 "Enable Zombie Objects" Xcode d

2012-12-28 15:55:08 1902

原创 改善Objective-C的日志输出

我该如何在日志输出信息中添加上下文信息,例如当前方法或者行号? C预处理器提供了一些标准宏,可以提供当前文件,行号,或者函数的信息。另外,Objective-C有_cmd隐式参数,可以提供当前函数的选择器,以及将选择器和类转换为字符串的功能。你可以在调试或者错误处理时在NSLog语句中提供这些上下文信息。 下面是打印当前方法和行号的例子。NSMutableArray *so

2012-12-23 17:49:33 3438

原创 为何在设备上运行时无法保存数据到应用bundle中

应用保存数据倒应用bundle中,这在模拟器中是可以的,但是在设备真机中是不行的。设备和模拟器之间的不同导致其出现不同的行为。在模拟器中,应用是保存在本地中的,你有完全的读写权限,所以代码是可以读写bundle中的设置数据。但是,在设备中,应用bundle是无法修改的。File System Programming Guide 有对应用目录中可写位置进行了说明。应用的home目

2012-12-23 17:48:42 2014

原创 使用GCD的dispatch_once创建单例

之前一篇《Objective-C的单例模式(singleton)》http://arthurchen.blog.51cto.com/2483760/642536介绍了创建单例的方式,不过后来发现其实在ios 4.0后有更加简单的方式。就是使用GCD的功能代码如下:+ (instantClass *)sharedClient {static instantClass *_sh

2012-11-15 19:38:27 4970

原创 如何查看经过iOS优化的PNG图片

编译iOS应用是,xcode会对PNG文件进行优化,这样图片预览就无法显示。那么如何查看这些经过优化的文件呢?优化的动作是由pngcrush 工具完成的,你可以再xcode中找到。pngcrush 支持命令行选项-revert-iphone-optimizations。这个选项可以支持撤销在xcode编译过程中进行的优化。所以,想要查看经过优化的文件,你应该先撤销优化,然后使用图片预览打开

2012-11-15 19:37:59 4438

原创 NSSetUncaughtExceptionHandler在iOS 5.0 模拟器上未被调用

最近在不同版本的SDK和设备中适配收集崩溃信息,发现在前面的《iOS已发布应用中对异常信息捕获和处理 》(http://arthurchen.blog.51cto.com/2483760/734175)中提到的NSSetUncaughtExceptionHandler在Xcode4.2&iOS 5.0 SDK的环境下稍有不同。在模拟器中发现崩溃的时候并没有log异常的内容和相关信息,同

2012-11-15 19:37:24 2466

原创 2012年10月29日 Back

转眼已经好几个月没有上来写点东西了。其实这段时间过得非常的充实,翻译了一本iOS的书,学习了新的平台,学习了新的语言,一直想上来分享,可是事情一多,时间就这样子过去了。这期间其实心态也出现了很多的变化,在工作上看的更开了,很多事情也不再那样子纠结。同时还有试着出去见见其他的公司,这让我回想起以前在那些个辛苦的日子。许多的这些东西,很快就会拿出来和大家分享。坚持。

2012-11-15 19:36:19 1671

原创 ios开发使用UIWebView显示多种文档

使用UIWebView显示多种文档 除了HTML的内容,UIWebView还可以显示多种类型的文档包括以下的类型·        Excel (.xls)·        Keynote (.key.zip)·        Numbers (.numbers.zip)·        Pages (.pages.zip)·        PDF (.pdf)·

2012-03-09 13:03:07 6432

原创 ios开发两个简单的错误提示和原因

两个简单的错误提示和原因在使用iTunes Connect上传时出现Info.plist does not contain a CFBundleResourceSpecification这样的错误时通常是因为你上传的是模拟器的版本的程序。建议在上传前还是经过真机测试的比较好。 在Xcode的 Organizer中出现"Xcode cannot find the software i

2012-03-09 13:01:56 3999

原创 为什么应用程序用户启动时崩溃,使用xcode打开却不会

为什么应用程序用户启动时崩溃,使用xcode打开却不会 iPhone的系统在程序启动时使用一个看门狗定时器,一旦发现程序花费太长的时间用来初始化启动程序,系统会终结程序。程序被终结的异常代码为0x8badf00d,输出崩溃报告。 Exception Type: 00000020Exception Codes: 0x8badf00dHighlighted Thread: 0

2012-03-09 13:01:22 5484 4

原创 在iOS设备上保存用户数据

在设备上保存用户数据应用程序在保存数据到程序的Bundle,这在模拟器上是可以的,但是在真机上就不行了。这是因为设备和模拟器的不同的权限导致的。模拟器拥有完全的读写权限,设备就没有了。iPhone Application Programming Guide 中包含了相关的描述。程序的目录下有一个偏好设置的目录/Library/Preferences但是你不能直接创建文件,应该使

2012-03-09 13:00:38 3039

原创 在iOS程序中检测数字和链接

在程序中检测数字和链接在iPhone 3.0后就支持UIDataDetectorTypes来检测数字和链接。UIDataDetectorTypePhoneNumberUIDataDetectorTypeLinkUIDataDetectorTypeNoneUIDataDetectorTypeAll通过设置dataDetectorTypes属性就可以实现功能- (void)

2012-03-09 12:58:38 3868

原创 如何在程序内退出iPhone程序

如何在程序内退出iPhone程序 iPhone上退出应用程序只能由用户点击Home键,apple并没有提供退出的api,私有的api是有的,不过听说4.0也已经无效了。基本我们已经不用这种暴力的事情了。苹果就是这样的霸道。 不过呢。领导们,总是有那么一些奇奇怪怪的需求,希望程序员可以让程序退出。程序员呢,总是可以解决,那么我们的方式就是调用exit(0)了。不过这时退出程序

2012-03-02 19:22:18 3877 2

原创 区分BundleVersion和BundleShortVersionString

区分BundleVersion和BundleShortVersionString 最近遇到了关于检查更新的版本问题了。问题出在了Info.Plist配置中的两个字段,BundleVersion和BundleShortVersionString。搞了两年的开发,第一次看到还有另一个字段的版本。由于版本检测升级的问题,搞得一众人手忙脚乱,一直讨论都没有一个定论。 迅速goo

2012-03-02 13:29:56 8630 4

原创 如何在存在动态版本的库时使用静态版本的库

当系统存在动态版本的库时,如何直接链接静态版本的库 通常,连接器会遍历目录去寻找动态版本的库如果没找到,在每一个目录下查找静态版本的相同的库。 显示的判断使用哪一个版本的库时通过设置查找路径。在命令行中使用-L连接选项,随后时查找的目录路径。在xcode中的设置是使用Library Search Paths 来设置查找目录 在编译的过程中,通过在xcode中的other l

2012-02-27 18:47:45 1814

原创 如何在发布包中将资源放在独立目录中

如何在发布包中将资源放在独立目录中 在添加资源时,首先资源应该在独立的目录中,然后在添加资源的时候修改一下默认的选择项,就可以。添加后资源目录会变成不同于平常的黄色文件夹,而是蓝色文件夹。 添加方式如下。参考:https://developer.apple.com/devcenter/ios/index.action

2012-02-27 18:47:16 1673

原创 探测调试器

我怎么确定是不是运行在调试器下呢? 下面的代码展示最佳的判断方式#include#include#include#include#include static bool AmIBeingDebugged(void)// Returns true if the current process is being debugged (eit

2012-02-27 18:46:39 2443

原创 良好的代码书写格式:适时的代码缩进

刚开始看到这样的代码时候,第一个瞬间是有点将其代码对齐的冲动,好吧,也许是有点强迫症。// start the slide up animation [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; // we need to perform some post

2012-02-08 14:49:49 2569 2

原创 iOS开发:Objective-C精确的货币计算

在iOS开发中,和货币价格计算相关的,需要注意计算精度的问题。即使只是两位小数,也会出现误差。使用float类型运算,是完全不够的。经过一番测试,最后选择使用系统提供的API的NSDecimalNumber来进行更好的解决。作为一个对外的库,鉴于版本延续,我们保留对外的flaot的类型,不改变接口,选择进行内部适配。以下是一些基本的测试,原始数据float a =

2012-01-10 20:49:01 4898 2

原创 实时游戏对战引擎Photon

个人开发者在iphone平台多数时候只能做单机游戏,因为没有服务器的原因,会出现很多的限制。除了官方的gamecenter有游戏挑战的功能之外,还有一个由exit games推出的实时游戏对战引擎Photon。http://www.exitgames.com/当然是收费的。openfeint在国内也就是九城了,已经获得国内独家代理,或许以后我们也可以用得上。-->九城(Nasd

2011-12-12 15:19:37 5258 3

原创 在 MacOSX 上实现多用户远程桌面

有时候,我们因为一些简单的需求需要使用Mac环境,可能只是新手熟悉环境,可能只是给客户展示,可能只是开会什么,但是设备的数量一时并没有那么多。我们需要让 MacOSX 支持多用户 GUI 远程登陆。以下是解决方案:1. 在苹果系统偏好设置中的账号打开“快速用户切换”功能,并让需要远程登陆的每一个帐号都登陆。  打开后右上角来切换账号 2. 使用vine

2011-12-08 22:28:56 14151

原创 在Mac系统下架设WiFi热点,对比Win7

看到《Win7无线电脑变WiFi热点实战体会》一文后,对比Mac平台,Windows系统确实做的不够。在mac下自己架设wifi应该来说还是非常稀疏平常的事,这还得得益于都是苹果的设计。说实话以前还不知道win7还可以设置wifi热点。但是即使看了之后,繁复的设置,命令行,让我还是没有完整的看完整个过程。下面用简单的几句话介绍一下mac系统下设置wifi热点,简单,易用。1:首先,

2011-12-08 22:11:42 4703

原创 [分享]android 人机界面指南(androdi设计规范)

从网络上看到的一份android设计规范,也是人际界面指南,感觉还不错,和大家分享一下。主要包含以下内容,详见附件。android 人机界面指南1Android 设计的依据1.1 框架结构及流程1.2 架构基础1.3 屏幕上的行为1.4 表达2 用户界面原则2.1 隐喻2.2 反映用户的心智模型2.3 直接操作2.4 动画效果(Animation

2011-12-07 14:53:59 4087

原创 iOS开发socket程序被SIGPIPE信号Terminate的问题

以前在iphone上写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。 client端通过 pipe 发送信息到server端后,就关闭client端, 这时server端,返回信息给 client 端时就产生Broken pipe 信号了。对于产生信号,我们可以在产生信号前利用方法 signal(int

2011-12-07 11:37:26 8493

原创 解决安装多个Xcode出现的PBXProjectWizardChooserWizard问题

以前在安装多个xcode的时候,由于某些配置的问题,在新建工程的时候,会出现类似下面这样的错误,导致工程模板无法创建。卸载xcode后重新安装,还原所有配置也没有解决。而且是只有在选择Window-based Application这个模板的时候才会,其他的模板是不会的,结果很是郁闷。File:   /SourceCache/DevToolsIDE/DevToolsIDE-1613/p

2011-12-06 16:09:10 1705

原创 iOS已发布应用中对异常信息捕获和处理

iOS已发布应用中对异常信息捕获和处理  iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的。 iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者。 不足的

2011-12-05 18:01:35 13134 6

原创 不再言必称重构优化

自从项目进入发布运营阶段,魔鬼式的开发结束了,继而开始的是技术咨询和维护工作。当然还有一些小功能的改动,bug的修改。但是相比已经是比较轻松的,用老大的话说就是:我知道你们工作量不饱和。每一次的小功能小版本的改动,始终称之为优化。今天,我终于再群里说了一句让大家都难堪的话:那也叫优化。 是的,我始终觉得,现在的软件开发,优化和重构这样词汇,已经被滥用了。很多时候,我只敢使用修改

2011-11-30 13:28:51 1947 1

原创 程序员的职业道德

通过一点经历,聊一聊一些感受,共勉。 以前,在一次离职工作交接的时候,因为我的项目由我全权负责和开发,发现公司对我就和贼一样。因为以前出现过有人在离职的时候,出于对公司的某些人或者事情的不满,依赖自己对项目的了解,对代码进行了某些改动。也许是致命的,导致工程接连出现许多的问题。当然,导致这样的问题其实很多时候是公司的错误,某些制度的不合理,对岗位和工作分配的不合理,导致出现一个人掌

2011-11-29 13:33:29 4611 3

原创 iOS5系统API和5个开源库的JSON解析速度测试

iOS5新增了JSON解析的API,我们将其和其他五个开源的JSON解析库进行了解析速度的测试,下面是测试的结果和工程代码附件。 我们选择的测试对象包含下面的这几个框架,其中NSJSONSerialization是iOS5系统新增的JSON解析的API,需要iOS5的环境,如果您在更低的版本进行测试,应该屏蔽相应的代码调用。 - [SBJSON (json-framework)](

2011-11-24 22:28:10 11053 11

原创 [windows phone 7开发]搭建WP7开发环境

上次已经有提到windows phone 7的开发环境搭建,其实非常的容易,没有什么困难的,我觉得程序员都可以搞定。同时发现网络上得基本都同一个作者的文章被转来转去,但是其实人家的是比较早的,其实感觉说的不够清楚。我这里没有步骤1234,只有链接和一些小的注意事项。首先,是由51cto提供的优质资源:风云再起“7迹”由你windows phone 7开发技术专区http:/

2011-11-22 21:25:53 2163

原创 [观点]AppStore支持人民币支付对国内开发者的影响

背景 : (来自网络)11月18日凌晨,苹果中国App Store更改了使用条款,正式以人民币标价结算。iPhone和iPad等移动终端已经开始支持国内各大银行充值,暂不支持银联和支付宝。苹果App Store中国区App价格单位已由“美金”更新为“人民币”。并且支持人民币充值,支持国内10多家银行。充值额度可选择¥50、¥100、¥300或¥500。此举彻底改善了之前中国用户购买应用的不

2011-11-19 14:27:15 2496

原创 你的手机应用是拍出来的吗

在刚接触现在的工作模式的时候,有很多的不解的地方。觉得很多的决策似乎很草率。经理的解释是,我们是做应用,不是做项目。手机应用,确实是应该讲一个快字,可是总该有个章法吧。经理解释,我们这边的领导比较多,都要考虑。曾经做做失败的应用,而今又要重启,我不禁再想是怎么回事。解释一下什么叫拍出来的。这是我自己总结的一个字。领导拍脑袋突发奇想,然后马上拍大腿做决定,经理拍胸脯打包票,最后是

2011-11-18 22:20:20 1155 1

原创 [对比]Android的差异设计和iOS的统一设计规范

以前一直觉得iphone的可控性比较好,不理解android的开放的设计,觉得可能会带来未知的灾难。早期的Android OS,没有统一的设计,UI是自定义的,不同厂商的设备在不同的版本间徘徊,androd手动刷rom和iphone的越狱一样纠结 。多系统版本带来的问题就是缺乏交互、UI的一致性,外加硬件厂商HTC、摩托罗拉、三星、夏普(点心OS)、小米(MIUI)等公司热衷于UI的个

2011-11-17 21:27:45 7281 2

翻译 (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0)

更新:ios4.1现在已经将这个做到SDK了。你可以设置键盘类型为UIKeyboardTypeDecimalPad!完成!在开发iphone程序的时候你可以选择各种键盘。其中的数字面板却没有带小数点。在底部的左下角有一个空白按钮,什么作用都没有。所以我将向你展示怎么将一个小数点按钮放在那里,看起来像这样的:有一些其他的教程向你展示如何做到这样,但是我相信我的更好。因为代码简

2011-11-17 16:14:04 4451

原创 [观点]从iOS-Android-WP7开发环境搭建感受平台风格

基本上来说我一名iOS平台的程序员,其他的平台基本都没有怎么接触过。不过开发环境倒是都搭建好了。弄好开发环境自后倒是颇有一点小感慨,不同平台的风格,在搭建开发环境上都有自己的体现。着实挺有意思的。先从我熟悉的平台开始。 iOSiPhone的开发环境搭建,怎么说,仁者见仁,智者见智。因为平台的缘故,就和iphone一样,入门的门槛比较高,剩下的就是觉得这也方便,那也方便。搭建io

2011-11-16 14:27:05 2068

C++和Objective-C混编 如何在xcode中用C++的STL

C++和Objective-C混编 如何在xcode中用C++的STL 这是一个工程例子。我的blog有提到。

2010-11-02

空空如也

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

TA关注的人

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