<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[苹果君的工作室]]></title><description><![CDATA[我也一直在努力]]></description><link>https://blog.youkuaiyun.com/wihing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wihing]]></copyright><item><title><![CDATA[Can't add self as subview]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/27960741</link><guid>https://blog.youkuaiyun.com/wihing/article/details/27960741</guid><author>wihing</author><pubDate>Sun, 01 Jun 2014 11:37:55 +0800</pubDate><description><![CDATA[iOS7刚发布的时候，总是出现这个 Can't add self as subview  的崩溃，团队内部没出现过，但是外部用户的crash频频上报这个崩溃。]]></description><category></category></item><item><title><![CDATA[dispatch_get_current_queue 废弃]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/9700639</link><guid>https://blog.youkuaiyun.com/wihing/article/details/9700639</guid><author>wihing</author><pubDate>Thu, 01 Aug 2013 13:42:17 +0800</pubDate><description><![CDATA[由于iOS7以后 dispatch_get_current_queue 被废弃，所以需要寻找一个替代的方案。
发现 dispatch_get_current_queue 并没有字面上那么简单。
这个函数一般都会跟 dispatch_async 等API配合，
但是试想一下，我们自己创建的线程(比如 NSThread)跟 dispatch_queue_t 没有关系，
那么在我们的线程中调用]]></description><category></category></item><item><title><![CDATA[不使用 symbolicatecrash 解析崩溃堆栈]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/9022149</link><guid>https://blog.youkuaiyun.com/wihing/article/details/9022149</guid><author>wihing</author><pubDate>Tue, 04 Jun 2013 15:19:48 +0800</pubDate><description><![CDATA[如果 使用 symbolicatecrash 解析崩溃堆栈 不起作用，可以通过以下方式看看符号文件和堆栈是否是对应的：

        dwarfdump --uuid xxx.app
        dwarfdump --uuid xxx.app.dSYM
        grep "0x.*com.wihing.xxx .*

    如果输出一样的uuid，那么就是对应的，此]]></description><category></category></item><item><title><![CDATA[UIView的alpha属性和hidden属性]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/8859258</link><guid>https://blog.youkuaiyun.com/wihing/article/details/8859258</guid><author>wihing</author><pubDate>Sat, 27 Apr 2013 16:06:56 +0800</pubDate><description><![CDATA[alpha 属性为0.0时视图完全透明，为1.0时视图完全不透明。
hidden属性为YES时视图隐藏，否则不隐藏。
注意事项：
1 当视图完全透明或者隐藏时，不能响应触摸消息。
也就是alpha等于0.0或者hidden为YES的时候，但是当alpha
2 视图的alpha值会影响子视图的绘制，但是子视图的alpha值不变。
文档的原文：This value affects only]]></description><category></category></item><item><title><![CDATA[viewDidUnload 和 viewWillUnload 被废弃之后的内存警告处理]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/8769715</link><guid>https://blog.youkuaiyun.com/wihing/article/details/8769715</guid><author>wihing</author><pubDate>Sun, 07 Apr 2013 21:31:01 +0800</pubDate><description><![CDATA[由于iOS6以上的UIKit不会在内存警告时自动释放视图，所以viewWillUnload和viewDidUnload将不再触发。
因此，在iOS6上，开发者需要负责内存警告时将不用到的视图释放。
WWDC2012的视频有提到，具体代码如下：
- (void)didReceiveMemoryWarning {
     if ([self.view window] == nil) {]]></description><category></category></item><item><title><![CDATA[使用 symbolicatecrash 解析崩溃堆栈]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/8738206</link><guid>https://blog.youkuaiyun.com/wihing/article/details/8738206</guid><author>wihing</author><pubDate>Fri, 29 Mar 2013 20:31:28 +0800</pubDate><description><![CDATA[确认Xcode的环境
/usr/bin/xcode-select -print-path结果应该是：
/Applications/Xcode.app/Contents/Developer/如果结果不是上述的路径，则指定一下路径：
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/准备好解]]></description><category></category></item><item><title><![CDATA[WWDC 2012 Session 221 iOS User Interface Design (iOS 用户界面设计)]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7952174</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7952174</guid><author>wihing</author><pubDate>Thu, 06 Sep 2012 19:50:19 +0800</pubDate><description><![CDATA[Bad App Icon (不合格的应用程序图标)
     好的应用图标能够抓住用户的眼球，让你的应用在海量的应用中脱颖而出。比如在App Store上搜索应用时，呈现的结果中图标占了很大的排版比例，并且用户喜欢看图片多于文字。所以用户会不会对你的应用感兴趣取决于应用的图标。
     instantly recognizable (容易辨认)
          1 focus on a]]></description><category></category></item><item><title><![CDATA[属性在viewDidUnload中设nil，在dealloc中却release]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7558006</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7558006</guid><author>wihing</author><pubDate>Fri, 11 May 2012 16:59:10 +0800</pubDate><description><![CDATA[如题，代码如下:
- (void)viewDidUnload {
	self.xxx = nil;
}

- (void)dealloc {
	[xxx release];
}
        属性在viewDidUnload中用点运算符设为nil，在dealloc中却直接调release，都有其理由。
    考虑到现在网上很多误导人的解释，决定记下来。
        总结之前我在st]]></description><category></category></item><item><title><![CDATA[《View Programming Guide for iOS》笔记]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7369904</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7369904</guid><author>wihing</author><pubDate>Mon, 19 Mar 2012 17:42:43 +0800</pubDate><description><![CDATA[View and Window Architecture

1 每个View的背后都有一个Layer负责渲染。Layer的渲染一般由Core Animation完成，并最终由更底层的硬件缓冲区保存屏幕上的每个点。
2 从视觉上看，子视图会遮住父视图的一部分或者全部。就是说，子视图的zorder一定比父视图大。
3 父视图的某些改变会影响到子视图，比如 resize，hide，alpha，t]]></description><category></category></item><item><title><![CDATA[创业公司 vs. 大公司]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7361982</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7361982</guid><author>wihing</author><pubDate>Fri, 16 Mar 2012 17:09:15 +0800</pubDate><description><![CDATA[本文由《10 Facts About Working at a Startup vs. a Big Company》意译





1) 责任, 义务, 影响力: 在创业公司，做对事情会惠及整个公司以及其客户，容易被高层挖掘，另一方面又允许出错。

2) 风险: 创业公司风险大，但是出来找另外一份工作几乎是零成本的。

3) 多面手的好机会: 多面手往往不能很好地完成大公司的工]]></description><category></category></item><item><title><![CDATA[无论是成功的时候，还是失败的时候，都要时刻提醒自己。]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7357696</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7357696</guid><author>wihing</author><pubDate>Thu, 15 Mar 2012 16:47:18 +0800</pubDate><description><![CDATA[1、缺乏目标。一个没有目标的人一定是一个对生活没有幻想的人。这种人的情绪也不可能好到哪里去。

　　因此，要想改善情绪，就得先确立一个生活的目标，在追求的过程当中你就会寻找到快乐，心情自己也就好了很多。

2、害怕失败。这类人不管做什么事情都缩手缩脚，总是害怕失败，也就是因为这样，他们每天总是一副提心吊胆的样子。

　　要想改变这种生活，这类人得先增强自己的自信心。

3、害怕被拒]]></description><category></category></item><item><title><![CDATA[《View Controller Programming Guide for iOS》笔记]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7345646</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7345646</guid><author>wihing</author><pubDate>Mon, 12 Mar 2012 17:25:54 +0800</pubDate><description><![CDATA[1 ViewController分两种：Content View Controller 和 Container View Controller。


2 View Controller的职责：对内管理Views，对外跟其他ViewController通信和协调，Storyboards可以降低对外部分的复杂度。


3 ViewControllers are brains of you]]></description><category></category></item><item><title><![CDATA[[iOS] 关于 self = [super init];]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7316041</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7316041</guid><author>wihing</author><pubDate>Sat, 03 Mar 2012 21:47:02 +0800</pubDate><description><![CDATA[先看一下官方文档给出的初始化示例代码：

- (id)init {
    self = [super init];  // Call a designated initializer here.
    if (self != nil) {
          // 省略其他细节
    }
    return self;
}

容易让人困惑的地方在于，将父类初始化之后，将其返回的对象]]></description><category></category></item><item><title><![CDATA[[iOS] ViewController的生命周期及其加载View的步骤]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7314702</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7314702</guid><author>wihing</author><pubDate>Sat, 03 Mar 2012 12:17:24 +0800</pubDate><description><![CDATA[首先先阐明ViewController的职责：对内管理与之关联的View，对外跟其他ViewController通信和协调。对于与之关联的View，ViewController总是在需要的时候才加载视图，并在不需要的时候卸载视图，所以也同时担当了管理应用资源的责任。理解ViewController的LifeCycle（生命周期），能够有效地管理应用资源。

ViewController的初始化]]></description><category></category></item><item><title><![CDATA[[iOS] Objective-C的单件模式]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7309716</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7309716</guid><author>wihing</author><pubDate>Thu, 01 Mar 2012 15:10:58 +0800</pubDate><description><![CDATA[首先，苹果官方文档给出了单件模式的例子，代码见本文最后。

其方式是重写release，retain，retainCount，autoRelease，allocWithZone和copyWithZone等方法。


1 重写allocWithZone和copyWithZone的目的是外部在多次调用alloc的时候，内部能够确保对象只创建了一次。
2 重写release、retain、a]]></description><category></category></item><item><title><![CDATA[Become a iOS coder iOS入门文档]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/7207219</link><guid>https://blog.youkuaiyun.com/wihing/article/details/7207219</guid><author>wihing</author><pubDate>Tue, 17 Jan 2012 16:00:15 +0800</pubDate><description><![CDATA[来自苹果官方文档，在初步了解Objective-C并且知道如何创建简单的应用程序之后，以下为进一步的入门文档。
开发者在进一步学习编写iOS应用程序之前，最好先阅读这些文档。





iOS App Programming
 Guide [iOS应用程序编程向导] 描述iOS应用程序最基本的组成和特性以及如何在你自己的项目中实现这些特性。


iOS Human Inter]]></description><category></category></item><item><title><![CDATA[[Android] 快速记账本(QuickCharge)]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/6977647</link><guid>https://blog.youkuaiyun.com/wihing/article/details/6977647</guid><author>wihing</author><pubDate>Wed, 16 Nov 2011 16:48:01 +0800</pubDate><description><![CDATA[应用名称：快速记账本
应用英文名称：QuickCharge
产品分类 应用软件 金融理财
适应版本 2.2  2.1  
分辨率: 320*480  480*800  480*854
中文介绍：
　　快速记账本提供快速方便的记账功能，单手便能完成记账。还有清晰的报表功能，方便个人财务分析。
　　相关应用：随手记 挖财关键词：记账 理财 日常事务 金融中文简介:10-20个汉字。 记账]]></description><category></category></item><item><title><![CDATA[编写高效Lua代码的方法 - 3 - 字符串]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/6973966</link><guid>https://blog.youkuaiyun.com/wihing/article/details/6973966</guid><author>wihing</author><pubDate>Tue, 15 Nov 2011 17:45:18 +0800</pubDate><description><![CDATA[翻译自《Lua Programming Gems》Chapter 2：Lua Performance Tips:Basic fact By Roberto Ierusalimschy


编写高效Lua代码的方法

字符串

和表一样，了解Lua如何实现字符串（string）对高效地使用字符串是有好处的。

    Lua实现字符串的方式有两个地方跟其它脚本语言截然不同。首先，L]]></description><category></category></item><item><title><![CDATA[编写高效Lua代码的方法 - 2 - 表相关]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/6973943</link><guid>https://blog.youkuaiyun.com/wihing/article/details/6973943</guid><author>wihing</author><pubDate>Tue, 15 Nov 2011 17:42:06 +0800</pubDate><description><![CDATA[翻译自《Lua Programming Gems》Chapter 2：Lua Performance Tips:Basic fact By Roberto Ierusalimschy


编写高效Lua代码的方法

表相关

通常情况下，你在使用表（table）的时候并不需要任何有关Lua如何实现表的细节。事实上，Lua竭尽全力地避免实现细节暴露给用户。但是这些细节还是在table操]]></description><category></category></item><item><title><![CDATA[编写高效Lua代码的方法 - 1 - 基本知识]]></title><link>https://blog.youkuaiyun.com/wihing/article/details/6973928</link><guid>https://blog.youkuaiyun.com/wihing/article/details/6973928</guid><author>wihing</author><pubDate>Tue, 15 Nov 2011 17:39:09 +0800</pubDate><description><![CDATA[翻译自《Lua Programming Gems》Chapter 2：Lua Performance Tips:Basic fact By Roberto Ierusalimschy


编写高效Lua代码的方法

基本知识

Lua在运行代码之前，会先把源码翻译（预编译）成一种内部编码，这种编码由一连串的虚拟机能够识别指令构成，与CPU的机器码很相似。接下来由C代码中的一个whil]]></description><category></category></item></channel></rss>