iOS6.0下奇怪的_UIRecordArgumentOfInvocationAtIndex異常 – iPhone手機開發技術文章 iPhone軟體開發教學課程

遇到的問題:

以下兩種定制化UIBarButtonItem的代碼在iOS7下沒有問題:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:@{NSForegroundColorAttributeName :[UIColor darkGrayColor]} forState:UIControlStateNormal];

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:@{@
“UITextAttributeTextColor”:[UIColor darkGrayColor]} forState:UIControlStateNormal];

但是在iOS下打開一些系統自帶的ViewController(例如預覽pdf的QLPreviewController)的情況下遇到_UIRecordArgumentOfInvocationAtIndex異常。參照StackOverflow中類似情況的帖子,原來這應該是iOS SDK的一個Bug.以下簡單的改動就可以幫你解決問題,也許這種小插曲也是編程樂趣的一部分。 微笑

解決方法:

使用以下方式後問題就解決瞭:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor darkGrayColor]} forState:UIControlStateNormal];

參照網址:

https://stackoverflow.com/questions/14125378/uiappearence-support-for-ios-6-unexpected-results

https://stackoverflow.com/questions/19863972/mfmailcomposeviewcontroller-crashes-because-of-global-appearance-properties-on-i

https://stackoverflow.com/questions/22489828/adbannerview-crashes-app-when-it-is-clicked

https://stackoverflow.com/questions/12567708/monotouch-ios-6-crash-when-using-mfmailcomposeviewcontroller

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *