Objective C 字串補0

在連續檔案時常常需要用上,例如連續圖片的動畫,用這方法就非常的重要,例如需要一串png圖檔「a0001.png」~「a0100.png」,這時候就相當重要好用

就已上面這例子在Objective C當中產出這100個檔名來
for(int i = 1; i <= 100; i++){ [NSString stringWithFormat:@"%04d", i]; }


格式「%nd」 n:需要補滿至幾位數
sample %2d
1
2
3
...
10
11
12

格式「%0nd」0:用0補滿至n位數
sample %02d
01
02
03
...
10
11
12

NSLocalizedString 多國語系字串

要使用這方式首先要新增檔案


檔案命名為"Localizable.strings"


設定字串KEY VALUE方式如下(行末別忘了加上分號)
"YOUR_KEY" = "YOUR VALUE";

使用字串方式如下
NSLocalizedString("KEY", nil)


但是有些時候會有個問題,在使用NSString 自定Format的同時會變得很醜,以及不同語言表示方式不同的問題,真的按照上面的方式硬幹當然可以,只是組出來很醜,如下範例
[NSString stringWithFormat:@"你想要吃什麼? %@ / %@", NSLocalizedString("KEY_A", nil), NSLocalizedString("KEY_B", nil)]

或許上面這範例還算簡單的狀況,如果前後還有加上其他字串等光組個字串眼睛都累了,Objective-C當然考量到了這點,就上面這範例可以修改為以下方式:

Localizable.strings
"YOUR_KEY" = "你想要吃什麼? %@ / %@";

code
[NSString stringWithFormat:NSLocalizedString(@"YOUR_KEY",nil), VALUE_A,VALUE_B ]



iOS get info.plist value

App中需要取得info.plist內容可使用下面這方式
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"PLIST_KEY_STRING"];

sample: App顯示名稱
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];

MACOS Fix Duplicate or Old Items on "Open With" Menu

Mac上常常會有看到在"open with"列表中相當東重複或舊的應用程式,下圖為正常狀況,但是常會有很多相同的應用程式混於其中,以下只需要兩個步驟解決此問題。


Step 1. 打開終端機,然後輸入以下這串指令
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/\
LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local\
-domain system -domain user

Step 2. 重新啟動Finder(Command+option+esc),點選重新啟動Finder


完成後就可以體驗乾乾淨淨的open with menu了~

iOS simulator memory warning on device


平常在simulator上可以使用從"Hardware -> Simulator Memory Warning",Device上可以使用以下這串code來模擬

[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];