從 XIB 建立 UITableViewCell 的問題

自己試著使用 XIB 把不同東西切割出來,像是 UITableViewCell 在 UITableView 的 viewDidLoad 裡面建立好相關的參照 - (void)viewDidLoad { [super viewDidLoad]; [self.tableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:cellIdentifier]; } 再建立 cell 時候,大概像這樣使用 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath]; // do cell things ... return cell; } 然後執行之後會出錯,大概會看到像這樣的錯誤 *** Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UITableView.m:6116 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier MyTableViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 原因是使用 dequeueReusableCellWithIdentifier:forIndexPath: 會去 UITableView 查用把 XIB 裡面要的東西建立起來,這個動作會順便檢查 XIB 裡面的 View 是不是 UITableViewCell,若不是的話會吐 NSInternalInconsistencyException [Read More]

產生 lame for iOS

lame 官方沒有提供 iOS 的版本只能自己動手做,但是網路上的都是 XCode 4 和用 gcc 編譯的方式

修正一些編譯上會遇到的問題,只要先去抓 lame 官方的程式碼 ,然後把以下的 script 放在解壓縮出來的資料夾中,再執行即可

東西會產生在 build 這個資料夾之下

PS.本來想用別的語言實作的,但是後來覺得 bash 的普及性比較高,所以就不再用其他語言實作

目前已經 fork 到我的 Github project build-lame-for-iOS,可以直接 fork 使用

build  XCode5  iOS  lipo  bash 

iOS enter background

If yout want to do something in background…

__block UIBackgroundTaskIdentifier backgroundId =
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [[UIApplication sharedApplication] endBackgroundTask:backgroundId];
    backgroundId = UIBackgroundTaskInvalid;
}];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^{
    // do some thing you want to ...
});
iOS  cocoa