公告版位

新版部落格:blog.changyy.org

目前分類:iOS (29)

瀏覽方式: 標題列表 簡短摘要

xcode_profile_export03

昨晚把 Mac mini 重灌了,灌完才想到 Xcode 開發環境的問題,所幸現在非常方便,直接在 Xcode 操作就能很順地匯出與匯入,因此,我只需要從另一台 Mac OS X 裡,透過 Xcode 把開發要用的 public key/private key 匯出即可,早期的作法可是透過 Keychains 各別匯出。

, ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

lunar-2013-06

把玩一下 NSCalendar ,發現他可以計算咱們華人常用的農曆日期耶!完整文件 iOS Developer Library - Date and Time Programming Guide

, , , , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

xocde_subproj

雖然 Objective C 的經驗不多,但漸漸地會想把一些共用的程式碼弄成 library 來使用,在加上 git 來管理,這時候就會想到 git submodule 的使用。原先以為把 xcode project 拖拉進來就可以了,後來發現這一切都只是幻想 XD 整體上的概念:編譯時要能找到(header search path),連結時要能找到(link binary)。原本以為拖拉其他 project 進來就能自動化搞動,最後發現還是要手動設定一些環境,所以就來筆記一下。

, , , ,

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()

複習一下 UIViewCnotroller ,在一樣的程式碼,在 iOS 6 不能做 Device Autorotate ,測試了一下是之前用法使用 UIViewController 的方式要更新一下。

以前在 AppDelegate.m 中,使用 [self.windows addSubview:my.view]; 的用法,需更新為 [self.windows setRootViewController:my]; ,如此一來在 iOS 5 跟 iOS 6 都可以正常使用了。

, , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

buildfbsdk01

最近摸摸 facebook-ios-sdk,發現它已經更新到 3.1,且從 3.0 開始架構有不少的變化,像是要求權限時,開始分 read 跟 write 的要求,例如登入時只能要求 read 或 write 類權限,而不能一次要求 read + write 權限,接著要再要求另一類權限時,可以在用 reauthorizeWithPermissions:defaultAudience:completionHandler: 再繼續要求。雖然 Facebook 有打包好一份 FacebookSDK 可下載到 Mac OS X 安裝使用,但有些好玩的架構 hack 則需要 source code (不見得要改 source code,可能是擴充架構時需要參考),所以就來編譯吧!編譯的概念很簡單,一種是編 app 時,要能夠找到 FacebookSDK header,另一種則是 link 時要能找到 FacebookSDK。

, , ,

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()

Category 對 Objective C 是一個很彈性的架構,它可以在不破壞 framework 架構下,彈性地新增一些好玩的 functions 和 variables。

以 UIImage 這個 class 來講,提供 getResizeImage 的函數:

, , , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

iOSDeveloperProgram02

申請 iOS Developer Program 流程說真的挺費時又耗工,比較大的變化是 2012.05 底左右,Apple 開始要求 Company 需提供 B&D D-U-N-S 編號,中譯為鄧白氏環球編碼 ,這編號常用於貿易公司,類似第三方機構驗證公司狀況,據說有這編號可以促進交易過程的流暢等等。

, , , ,

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()

IBStudy--

雖然內建的 UITableViewController 已經有不少還不錯用的 Cell Style (UITableViewCellStyleDefault, UITableViewCellStyleValue1, UITableViewCellStyleValue2, UITableViewCellStyleSubtitle),但客製化自己 Cell 還是一種必學的技能。然而,客製化自己的 layout 大概可以分成兩種方式,一種是純程式碼的撰寫(覆寫 layoutSubViews 或對 contentView 加東西),例如把 ImageView 擺在哪個 (x,y) 座標並設定大小為 (w,h) 等,另一種則是使用 Interface Builder 對元件的拖拉,再跟 Class 進行相對應的設定。由於之前比較熱愛 Coding ,所以一直沒用 Interface Builder,這次就來摸個幾把美美的 UI 操作吧 *誤*

, , , ,

changyy 發表在 痞客邦 PIXNET 留言(3) 人氣()

最近開始複習 iOS SDK,過去使用 UITableViewController 時,每次資料新增變動時,都是透過 [self.tableView reloadData] 來更新畫面,效果就是把整個 UITableView 都重畫一次,只是若碰到資料更新很頻繁時,就會發現有些 touch event 因過度 reloadData 而出現短暫不能被處理。最近看 UITableView 相關書籍時,才發現原來早在 iOS SDK 3.0 時,就可以指定某個 Section 的某個 Row 更新就好!這招當然就可以用在新增資料及更新資料,實在太讚了!不曉得是不是太早接觸 iPhone SDK 哩,真的是太晚發現了 Orz

From UITableView Class Reference

, , , , , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

前幾天玩遊戲時,看到開發者請大家把 Crash Log / Crash Report / Bug Report 寄回給他,如此一來就可以偵錯,滿好奇的便也隨意在網路上找找該怎樣使用,在此便稍作筆記,並且寫一個簡單會 crash 的程式(很少人會這樣做吧 XD)。

所謂的 Crash Report 是在實體機器上,執行程式時發生 crash 時,此時 iOS 會幫忙將程式出錯的相關資訊存起來,這時候用 Xcode 的 Organizer - Devices 時,可以去點選設備,並且可以查看有哪些 report 在上頭,這時候就可以稍作觀看,但是上頭記錄的資訊是有稍微類似做過保護的,只會看到類似(這是網路上收集的資訊,但我嘗試做出的 log 好像已經轉好了?):

, , , , , , , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()


來源:Introduction to CFNetwork Programming Guide

, , , , , , , ,

changyy 發表在 痞客邦 PIXNET 留言(3) 人氣()

好久沒碰 Xcode 了,上一次寫這種筆記應該是一年前了吧?昨天把公司的環境打理了一下,下載最新的 Xcode 4.0.2 and iOS SDK 4.3,接著把 iPhone 3G iOS 4.2.1 的機器測一下網路連線,結果會噴訊息:

warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so (file not found).

, , , , , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight setCornerRadius

很久沒練習 iPhone 程式,大概有半年吧?剛好無意間看到片斷的程式,就順便記錄一下。

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

幾個月前學習使用 UIWebView 時,就是作一個簡單得 Browser 出來,提供輸入 URL 以及上下頁等等基本功能,然後在這樣得過程中,在切換上下頁時,又想要更新 URL 欄位資訊,此時就是替 UIViewController 加上 UIWebViewDelegate 並使用 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 解決。

已經有一陣子跟同事討論有沒有可能用 Javascript 去呼叫 Objective-C 做的 function 呢?雖然一直反反覆覆地回他,但今天認真看一下,找到這篇 Calling Objective-C from JavaScript in an iPhone UIWebView ,原來,他用到的技巧就是之前學作一個簡單 Browser 會用到的,去偵測點到的 hyperlink!因此,換個方式以 Javascript 使用 window.location = 'call?HelloWorld'; 時,透過 UIViewController + UIWebViewDelegate 攔截到 url 後,就可以透過 pattern matching 來決定啟用自己內定的 Objective-C function 啊!這麼簡單就解決了,果真學東西要融會貫通才有用!

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()

UIScrollView

筆記之前透過 UIScorllView 呈現跟 iPhone 內建的照片瀏覽程式的類似效果

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

LocalizableString

iTunes App Store 可在於多個國家販售、散佈分享所寫的 App,因此,客製化不同語言的操作介面是很基本的功夫,概念上很簡單,凡是在 App 上使用 NSString 印出來的字串,都可以透過查表的方式,依照設定的語言,更改成想要的。

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()

有時偷懶設計,把一堆資料儲存在 App 的專屬 Document 目錄裡頭,等到要用時才要去找尋他,這時候就會需要像 Unix 的 ls 指令來呈列出檔名,細節請參考contentsOfDirectoryAtPath:error:

程式碼:

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

在網路上打滾多時,後來才發現其實 Apple Dev Center 上的範例就很好用了!真搞不懂我在亂花時間做什麼

建議先下載範例程式跑一下,看看這個東西的功能是不是你想要的,以下是一些筆記

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

有些設計,為了讓使用者有更好的體驗,常常會用到的技巧就是 Asynchronous Operation ,採用非同步處理的模式,就像 Web 這幾年來很熱門的 Ajax 使用方式。在此以 NSOperation 與 UIWebView 做個筆記,前者是類似 Thread(NSThread) ,但他還可以設定相依性,例如兩個工作,必須第一個做完才能做第二個等,但在此僅簡單使用 Thread 的功能;後者只是瀏覽網頁用的,他除了可以直接給 URL 來源,也可以從檔案。

此範例主要是呈現一個非同步取得網頁資料的方式,當資料在下載時,先呈現一個 loading 的狀態,等資料取得後再更新。

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

UILog

有時候呈現多個 View 時,用的資料會有相關性,此例以兩個 UITableViewController 為例,他們的 dataSource 是同一個來源,當透過底下的 TabBar 進行接換時,會自動增加 dataSource 的資料,接著呈現最新的清單列表,並且在 Console 上印出從哪個 View 新增的資料,以及目前 dataSource 的個數。此作法是共用記憶體資料,另一種作法是每次讀資料都從 databases 或 file 更新。

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()

1 2