@since2006 记忆碎片

真机调试提示:finished running <app name> on iPhone,控制台也没输出报错信息。出现这种情况多半是在高版本xcode下调试老的iOS设备(如iPhone 3G)。

新版xcode创建项目时,默认只支持armv7架构的设备。

ARMv7 = iPhone 3GS/4, iPod 3G, iPad

ARMv6 = iPhone 2G/3G, iPod 1G/2G

如果需要在老设备中调试,可以这样解决:

  1. 删除"info.plist"中"Required device capabilities"下的"armv7"项目
  2. 在"Build Settings"中"Architectures"下添加一项"armv6"

Posted by hee at 01:05 AM | Permalink | 评论(0)

弄到台淘汰的iPhone 3G一看系统还是2.2的,Orz。这么古老的系统在AppStore中基本没什么新版程序可以下载使用了,蛋疼的居然还是有锁版的只能越狱后解锁才能使用,记录下过程以后方便再次越狱时参考。

一些信息:

  1. 3G版系统最高只能升级到iOS 4.2.1
  2. iOS 4.2.1目前可以完美越狱和解锁
  3. 解锁过程根据不同情况分几种方法

越狱工具:

  1. iPhone 3G对应的4.2.1固件
  2. 越狱工具redsn0w_win_0.9.6rc16

解锁步骤:

越狱完后,可以在Cydia里下载ultrasn0w来解锁,解锁分为几种情况:

  1. 如果目前版本ultrasn0w直接支持软解当前手机的基带版本,直接安装即可
  2. 在Cydia中安装fuzzyband降级当前手机基带,bootloader为05.08才能降级,运行fuzzyband程序会自动判断并提示能不能降级
  3. 如果上述两种方法都不行,则安装iPad基带(redsn0w中有此选项)将iPhone 3G基带升级到06.15.00,ultrasn0w支持此版本基带解锁。

使用第3种方法升级到iPad基带后是不可以降级的了,但想使用SIM卡也只能这样了。:-)

大致过程就是这样,具体的细节到时忘了再google,大把文章。

 

Posted by hee at 01:04 AM | Permalink | 评论(0)

在App Store中升级xcode 4.3.2感觉速度比较慢,于是手工下载安装后将Launchpad中程序弄乱了,一直显示下载中看起来很不舒服,被俺人肉搞定后才发现有一些专门管理Launchpad的程序可以直接拿来使用,如:Launchpad Control等。

其实Launchpad中的程序图标配置信息都存放在sqlite中,找一个sqlite管理工具便可自己随便操作了,步骤如下:

1. 设置Finder可以显示隐藏文件,在终端下执行:

defaults write com.apple.Finder AppleShowAllFiles YES

2. 按住alt并右键点击Finder图标,选择“重新开启”

3. 进入~/Library/Application Support/Dock目录,将会看到一个UUID.db的文件,备份一下。

4. 用sqlite管理工具打开后将会看到几个表,在apps,groups表中删除相关记录。

5. 注销一下再登录系统让Launchpad重新读取刚刚的修改。

 

Posted by hee at 07:04 AM | Permalink | 评论(0)

有时为了美化UITextField样式会使用自定义背景图片而将本身的边框隐藏,这时基本上光标的位置都不会很合适,而UITextField默认不可以设置padding,咱们可以自定义一个子类实现padding。

//
//  UITextFieldEx.h
//

#import <Foundation/Foundation.h>

@interface UITextFieldEx : UITextField {
    
    BOOL isEnablePadding;
    float paddingLeft;
    float paddingRight;
    float paddingTop;
    float paddingBottom;
    
}

- (void)setPadding:(BOOL)enable top:(float)top right:(float)right bottom:(float)bottom left:(float)left;

@end

阅读全文 "UITextField设置padding" »

Posted by hee at 11:03 AM | Permalink | 评论(0)
程序名称国际化:
1. 新建InfoPlist.strings
2. 查看InfoPlist.strings属性,在Localization节添加需要国际化的语言
3. 分别添加内容:CFBundleDisplayName="程序名称";

程序内容国际化:
1. 新建Localizable.strings
2. 查看Localizable.strings属性,在Localization节添加需要国际化的语言
3. 分别添加内容:"key1" = "value1";
4. 在程序中使用:NSLocalizedString(@"key1", nil); 读取内容

注意修改Localizable.strings时,如果要使用注释的话,不能使用 # 这种单行注释,可以使用 /* */ 这种多行注释。因为一使用 # 注释后,接下来的实际内容都无效了。这个问题害得俺查找了半个多小时,开始一直以为是缓存引起的。Orz


Posted by hee at 12:03 PM | Permalink | 评论(0)
Cornerstone是Mac OS下一款强大的SVN客户端,不过试用周期只有14天。

可以用下面方法重置试用期限,不过如果这款程序真的帮到大家,亲~请购买正版哦。

1.显示系统隐藏文件

在终端(Terminal)中输入如下命令:defaults write ~/Library/Preferences/com.apple.finder AppleShowAllFiles -bool true

为true时显示隐藏文件,为false是不显示隐藏文件。执行完后需重启。

2.打开~/Library/Preferences/ByHost下的.GlobalPreferences.XXXX.plist文件,XXXX为一串疑似UUID一样的字符串。

删除其中类似<key>com.zennaware.Cornerstone:2.6</key><data>......</data>的行。

3.保存,打开Cornerstone试试。

Posted by hee at 23:02 PM | Permalink | 评论(0)