2013年11月4日 星期一

CountzDown 隱私權及資訊安全政策




親愛的朋友,歡迎使用CountzDown的服務。本人非常重視並尊重網友的隱私權。請詳細閱讀以下資訊安全保護政策,將幫助您了解,在您使用CountzDown的服務時,有關收集、運用及保護網友個人資料的政策與原則。 


2013年10月25日 星期五

用 if-else 來針對 iOS 7 / iOS 6 有不同的寫法

    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {

// 針對 iOS 6的code

    } else {


// 針對 iOS 7的code

    }

2013年9月30日 星期一



“May God break my heart so completely that the whole world falls in.”




- By  Mother Teresa 

LLDB Debugger 一直會卡在Attaching Project on iPad [Solved]


在Run Simulator的時候,會一直卡在Attaching project on iPad...

之後就一直等一直等....

直到你要用強制關閉才能終止它做事.

這個問題解了,發現是因為 localhost 對應的ip錯誤. 導致無法Attaching 成功.

2013年9月24日 星期二

UITableView 實作下拉更新 用refresh control



在 YourViewController.h中加入

@property (nonatomic, strong) UIRefreshControl *refreshControl;
@property (nonatomic, strong) IBOutlet UITableView * tbView; (你要下拉更新的TableView)


2013年9月18日 星期三

[Bug] Invalid Icon Path - No icon found at the path referenced under key

當你Build都沒有問題,Archive也沒問題,

但就是最後Submit的時候有這個錯誤訊息:

Invalid Icon Path - No icon found at the path referenced under key

遇到這個問題的時候

只要檢查自己Project的 XXX-info.plist裡面的 Icon files  即可!

會有一些不存在的圖,把它Delete掉即可!







2013年9月14日 星期六

如何設定Navigation上的Title和Color











在你的ViewController.m 中
- (void)viewDidLoad{

    [self.navigationItem setTitle:@"Any Title"];

}

2013年9月12日 星期四

使用plist讀取資料完整範例教學


iOS中, plist就像一個物件的"檔案",

可以輕易的當成物件做存取和寫入,

以下是一個最基本使用plist的練習.


2013年9月4日 星期三

[詳細安裝圖文] Cocoapods 好用的第三方套件管理


官網是這麼形容的

The best way to manage library dependencies in Objective-C projects.

在Objective-c上管理Library最好的工具,

功能: 假如你在開發一個大型的專案, 裡面用了10幾套開源的第三方套件,

當這些套件更新的時候,以前的做法是Download下來,手動覆蓋掉舊的,

但假如是10幾個!太麻煩啦!! 

何況你還要check是哪些有更新了.

cocoapods,看來是首選的solution.


安裝步驟 


1.  打開 Terminal 














2013年9月3日 星期二

超簡單- 無名搬家到Tumblr


Tumblr還算是個簡潔、好看的部落格,
介於重網誌(Blogger, wordpress) 與 一行文 (FB, tweeter)之間!
加上搬家非常簡單,大家可以趁著這個機會用看看喔!


1. 登入無名的帳號後,會看到




NSDate to NSString / NSString to NSDate

1. NSDate to NSString

//先建立你要的Format
NSDateFormatter*formatter =[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss" ];

//看你的時區是什麼
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Taipei"]];
NSString*stringFromDate =[formatter stringFromDate:myNSDateInstance];

-----------------------------------------------------------------------------------------------------------------------------

2. NSString to NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Taipei"]];
NSDate *date = [dateFormatter dateFromString:@"2010-08-04 16:01:03"];

2013年8月27日 星期二

用 NSNotification 註冊事件發生通知簡單3部曲



1. Add- 監聽事件的發生,一發生的話就執行Selector..

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                          selector:@selector(didDismissSecondViewController) 
                                          name:@"ViewControllerDismissed"  
                                         object:nil];

2. Post- 事件發生時! 發出通知讓其他有加入此通知的地方去執行相對應的動作!

    [[NSNotificationCenter defaultCenter] postNotificationName:@"SecondViewControllerDismissed" 
                                          object:nil  
                                          userInfo:nil];

3. Remove- 移除掉Observer,避免收到不必要的通知

    暴力法: 寧可錯殺一百也不願放過一個 草菅人命
    [[NSNotificationCenter defaultCenter] removeObserver:self];

    明察秋毫法: 用name去找.. 關掉這部分的通知
    [[NSNotificationCenter defaultCenter] 
removeObserver:self name:@"SecondViewControllerDismissed" object:nil]; 


簡化精華三部曲,

可以用來傳遞參數或控制UI變化等等,上手後超級實用喔!



Xcode - No ARC support? 其他第三方的component不支援 ARC 怎辦


遇到某個檔案 No ARC Support? It's easy.  " -fno-objc-arc" 就好!


選到你的Project

TARGETS-> 你的App -> Build Phases ->





找到那個不支援ARC的.m檔





完成!





UITableViewCell deselect 取消選取


有沒有遇到過UITableViewCell 按下去之後就一直有呈現選擇的狀態

只在didSelectRowAtIndexPath加上

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  

    // Your code here ...  
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

 }


就可以了喔 

animated YES的話會有藍色選取被漸淡的動畫


Singleton - 只要instance一次就可以當全域變數的方法


一般instance的方式:
myclass *instance = [[myclass alloc] init];

Singleton物件的方式:

myclass *instance = [myclass sharedInstance];


對於同一個物件,要在不同的view上面做共享時候

Singleton 是一個非常好用的方式

有點像是全域( global variable )變數一樣

在任何地方都可以共享他的value,

也透過這個方法作參數的傳遞.



2013年5月19日 星期日

如何在Blogger上開新分頁 (圖文解說) How to create tabs in blogger ?


想在Blogger建立不同的分類,

用來分類不同的文章,

這邊有一個很簡單的方法喔!

以下分解動作,3分鐘內搞定!


第三次工業革命!



只需滑鼠輕輕一點,背後卻濃縮了300的工業革命歷程。

Makers by Chris Anderson





2013年5月13日 星期一