tag:blogger.com,1999:blog-88732686321924757702024-03-05T13:47:03.008-08:00智v程式筆記Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.comBlogger52125tag:blogger.com,1999:blog-8873268632192475770.post-30806780722656658372016-06-22T04:15:00.003-07:002016-07-08T19:08:12.588-07:00iOS常見面試問題每日研究本文原自 iOS 中级面试题<br />
<a href="http://mrpeak.cn/ios/2016/01/07/push">http://mrpeak.cn/ios/2016/01/07/push</a><br />
<br />
Day 1. ARC, Automatic Reference Counting<br />
<br />
Apple, Transitioning to ARC Release Notes<br />
<a href="https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html">https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html</a><br />
<br />
Wiki, Automatic Reference Counting<br />
<a href="https://en.wikipedia.org/wiki/Automatic_Reference_Counting">https://en.wikipedia.org/wiki/Automatic_Reference_Counting</a><br />
<br />
理解 Objective-C 的 ARC<br />
<a href="http://www.oschina.net/translate/objc-automatic-reference-counting-in-xcode-explained">http://www.oschina.net/translate/objc-automatic-reference-counting-in-xcode-explained</a><br />
<br />
自動引用計數<br />
<a href="https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/16_Automatic_Reference_Counting.html">https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/16_Automatic_Reference_Counting.html</a><br />
<br />
Swifter, @AUTORELEASEPOOL<br />
<a href="http://swifter.tips/autoreleasepool/">http://swifter.tips/autoreleasepool/</a><br />
<br />
Day 2. assign vs weak, __block vs __weak<br />
<br />
被无数人写过的assign,retain,strong,weak,unsafe_unretained,还有copy<br />
<a href="http://www.jianshu.com/p/4a1d1921284b">http://www.jianshu.com/p/4a1d1921284b</a><br />
<br />
__weak与__block区别<br />
<a href="http://honglu.me/2015/01/06/weak%E4%B8%8Eblock%E5%8C%BA%E5%88%AB/">http://honglu.me/2015/01/06/weak%E4%B8%8Eblock%E5%8C%BA%E5%88%AB/</a><br />
<br />
Day 3. Atomic<br />
<br />
Properties Are Atomic by Default<br />
<a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html">https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html</a><br />
<br />
iOS基礎之atomic與nonatomic,assign,copy與retain的定義和區別<br />
<a href="http://fanli7.net/a/bianchengyuyan/C__/20130618/372617.html">http://fanli7.net/a/bianchengyuyan/C__/20130618/372617.html</a><br />
<br />
Objective-C——atomic一定是线程安全的吗?<br />
<a href="http://blog.csdn.net/chenyufeng1991/article/details/49687215">http://blog.csdn.net/chenyufeng1991/article/details/49687215</a><br />
<br />
Day 4. Retain cycle<br />
<br />
Swift 自動引用計數 類別實例之間的迴圈強參考<br />
<a href="https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/16_Automatic_Reference_Counting.html#strong_reference_cycles_between_class_instances">https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/16_Automatic_Reference_Counting.html#strong_reference_cycles_between_class_instances</a><br />
<br />
iOS blocks - 三個會造成retain cycle的anti patterns<br />
<a href="http://popcornylu.blogspot.tw/2012/02/3-anti-patterns-which-lead-memory-leaks.html">http://popcornylu.blogspot.tw/2012/02/3-anti-patterns-which-lead-memory-leaks.html</a><br />
<br />
Day 5. Runtime<br />
<br />
Objective-C Runtime Programming Guide<br />
<a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html">https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html</a><br />
<br />
iOS runtime学习笔记<br />
<a href="http://www.jianshu.com/p/970ae3bac1ef">http://www.jianshu.com/p/970ae3bac1ef</a><br />
<br />
理解 Objective-C Runtime<br />
<a href="http://justinyan.me/post/1624">http://justinyan.me/post/1624</a><br />
<br />
Day 6. +(void)load; +(void)initialize;<br />
<br />
Objective C类方法load和initialize的区别<br />
<a href="http://www.cnblogs.com/ider/archive/2012/09/29/objective_c_load_vs_initialize.html">http://www.cnblogs.com/ider/archive/2012/09/29/objective_c_load_vs_initialize.html</a><br />
<br />
Day 7. Method swizzling<br />
<br />
Objective-C的hook方案(一): Method Swizzling<br />
<a href="http://blog.csdn.net/yiyaaixuexi/article/details/9374411">http://blog.csdn.net/yiyaaixuexi/article/details/9374411</a><br />
<br />
Objective-C Runtime 运行时之四:Method Swizzling<br />
<a href="http://southpeak.github.io/blog/2014/11/06/objective-c-runtime-yun-xing-shi-zhi-si-:method-swizzling/">http://southpeak.github.io/blog/2014/11/06/objective-c-runtime-yun-xing-shi-zhi-si-:method-swizzling/</a><br />
<br />
Day 8. UIView與CALayer<br />
<br />
详解 CALayer 和 UIView 的区别和联系<br />
<a href="http://www.cocoachina.com/ios/20150828/13244.html">http://www.cocoachina.com/ios/20150828/13244.html</a><br />
<br />
KKBOX iOS/Mac OS X 基本開發教材 CALayer<br />
<a href="https://zonble.gitbooks.io/kkbox-ios-dev/content/core_animation/calayer.html">https://zonble.gitbooks.io/kkbox-ios-dev/content/core_animation/calayer.html</a><br />
<br />
Day 9. UIImageView 圓角<br />
<br />
iOS 高效添加圆角效果实战讲解<br />
<a href="http://www.jianshu.com/p/f970872fdc22">http://www.jianshu.com/p/f970872fdc22</a><br />
<br />
Day 10. drawRect<br />
<br />
iOS重绘机制drawRect<br />
<a href="http://blog.csdn.net/nyh1006/article/details/38899251">http://blog.csdn.net/nyh1006/article/details/38899251</a><br />
<br />
内存恶鬼drawRect<br />
<a href="http://bihongbo.com/2016/01/03/memoryGhostdrawRect/">http://bihongbo.com/2016/01/03/memoryGhostdrawRect/</a><br />
<br />
Day 11. 研究Alamofire<br />
<br />
GitHub Alamofire/Alamofire<br />
<a href="https://github.com/Alamofire/Alamofire">https://github.com/Alamofire/Alamofire</a><br />
<br />
对于AlamoFire几点思考,AlamoFire几点思考<br />
<a href="http://www.zendei.com/article/4319.html">http://www.zendei.com/article/4319.html</a><br />
<br />
Alamofire 源码赏析(一)基础篇<br />
<a href="http://liuduo.me/2015/11/17/Alamofire-%E6%BA%90%E7%A0%81%E8%B5%8F%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89%E5%9F%BA%E7%A1%80%E7%AF%87/">http://liuduo.me/2015/11/17/Alamofire-%E6%BA%90%E7%A0%81%E8%B5%8F%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89%E5%9F%BA%E7%A1%80%E7%AF%87/</a><br />
<br />
优秀源码阅读:Swift网络库Alamofire<br />
<a href="http://www.cocoachina.com/ios/20151118/14240.html">http://www.cocoachina.com/ios/20151118/14240.html</a><br />
<br />
从 Alamofire 源码学习 Swift<br />
<a href="http://broccoliii.me/2016/05/07/Learning_Swift_from_Alamofire_source/">http://broccoliii.me/2016/05/07/Learning_Swift_from_Alamofire_source/</a><br />
<br />
Day 12. Instrument<br />
<br />
Instruments Tutorial with Swift: Getting Started<br />
<a href="https://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started">https://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started</a><br />
<br />
Day . GCD<br />
<br />
KKBOX GCD(Grand Central Dispatch)<br />
<a href="https://zonble.gitbooks.io/kkbox-ios-dev/content/threading/gcd.html">https://zonble.gitbooks.io/kkbox-ios-dev/content/threading/gcd.html</a>Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-61607951329804114702015-05-10T20:05:00.003-07:002015-12-07T04:12:09.145-08:00iOS學習資源彙整Swift 入門:<br />
<br />
The Swift Programming Language<br />
(蘋果的官方教學 英文版 把前兩章讀完就能大致了解Swift了)<br />
<a href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0">https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0</a><br />
<br />
《正體中文版蘋果 Swift 官方教學》<br />
(The Swift Programming Language 的中文版)<br />
<a href="http://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/">http://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/</a><br />
<br />
玩儿转Swift:<br />
(大陸的mooc教學 有豐富講解)<br />
<a href="http://www.imooc.com/learn/127">http://www.imooc.com/learn/127</a><br />
<br />
Swifter - Swift 必备 tips:<br />
(每個禮拜三更新的進階Swift)<br />
<a href="http://swifter.tips/">http://swifter.tips/</a><br />
<br />
Swift iOS:<br />
<br />
使用Swift开发iOS8 App实战<br />
(首推這個教程 相當適合入門)<br />
<a href="http://www.imooc.com/learn/173">http://www.imooc.com/learn/173</a><br />
<br />
iOS With Girlfriend<br />
(非常入門好懂 一二章節還有提到Sketch設計的部分)<br />
<a href="https://youtu.be/LEQpV9znZsk?list=PLdxID9MLTgg-oHgbxcBGtPrgkrvucDOnB">https://youtu.be/LEQpV9znZsk?list=PLdxID9MLTgg-oHgbxcBGtPrgkrvucDOnB</a><br />
<br />
愛瘋一切為蘋果的彼得潘<br />
(Swift書籍的作者 每天發布iOS的好文章)<br />
<a href="https://www.facebook.com/iphone.peterpan/?fref=ts">https://www.facebook.com/iphone.peterpan/?fref=ts</a><br />
<br />
Stanford - Developing iOS 8 Apps with Swift [2015]<br />
(Stanford大學的課程影片)<br />
<a href="https://www.youtube.com/playlist?list=PLy7oRd3ashWodnpf8rjfYEkTgwbOEsKfU">https://www.youtube.com/playlist?list=PLy7oRd3ashWodnpf8rjfYEkTgwbOEsKfU</a><br />
<br />
// 這邊Swift資源還滿多的<br />
// 以下可以有空再看看 比較進階一點<br />
<div>
<br /></div>
KKBOX iOS/Mac OS X 基礎開發教材<br />
(進階的iOS教材 建議有一定基礎與OC概念再讀)<br />
<a href="https://zonble.gitbooks.io/kkbox-ios-dev/content/">https://zonble.gitbooks.io/kkbox-ios-dev/content/</a><br />
<br />
Swift Weather APP<br />
(Swift的進階課程 有用到第三方管理套件CocoaPods)<br />
<a href="http://www.imooc.com/learn/149">http://www.imooc.com/learn/149</a><br />
<br />
iOS Human Interface Guidelines<br />
(iOS人機介面指南 這好像有中文版 需要可以找找看)<br />
<a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/">https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/</a><br />
<br />
App Programming Guide for iOS<br />
<a href="https://developer.apple.com/library/prerelease/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007072">https://developer.apple.com/library/prerelease/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007072</a><br />
<br />
imooc iOS類別<br />
(慕課網有相當多iOS教學 自行去挖寶吧!)<br />
<a href="http://www.imooc.com/course/list?c=ios">http://www.imooc.com/course/list?c=ios</a><br />
<br />
一起来做价值百万的Apple Watch App:分歧终端机<br />
(Apple Watch的Swift課程)<br />
<a href="http://www.imooc.com/view/242">http://www.imooc.com/view/242</a><br />
<br />
Let's Swift<br />
(各種Swift應用文章)<br />
<a href="http://letsswift.com/">http://letsswift.com/</a><br />
<br />
Objective-C:<br />
<br />
Objective-C Tutorial<br />
(雖然某些資料偏舊 不過也是個不錯的學習地點)<br />
<a href="http://www.tutorialspoint.com/objective_c/">http://www.tutorialspoint.com/objective_c/</a><br />
<br />
征战Objective-C:<br />
(幕課網的OC入門教學)<br />
<a href="http://www.imooc.com/learn/218">http://www.imooc.com/learn/218</a><br />
<br />
Objective-C面向对象初体验:<br />
(OC物件導向的教學)<br />
<a href="http://www.imooc.com/learn/373">http://www.imooc.com/learn/373</a><br />
<br />
imooc iOS類別<br />
(慕課網也有很多OC的教學哦)<br />
<a href="http://www.imooc.com/course/list?c=ios">http://www.imooc.com/course/list?c=ios</a><br />
<form accept-charset="utf-8" action="https://developer.apple.com/search/index.php" autocomplete="off" class="hideInXcode" id="search" method="get" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 10px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
</form>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-59793159710182118612015-03-21T03:57:00.001-07:002015-03-21T03:57:40.665-07:00iOS Page-Based Application 無法翻頁有可能是你的pageData有相同的值<br />
無法確認是到哪一頁<br />
所以就一直出現重複的那一頁<br />
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-55742967803095012062015-02-07T07:08:00.002-08:002015-02-07T07:08:32.604-08:00Swift iOS TableView searchDisplayController?.searchResultsTableView 失效今天我要判斷tableview是否是search的狀態<br />
使用了if 來作抉擇 code如下<br />
tableview == searchDisplayController?.searchResultsTableView<br />
結果發現就算在search的時候<br />
這個判斷是也不會相等 令我感到非常地驚奇<br />
<br />
所以我就上網找找資料 發現使用<br />
<br />
<div class="p1">
<span class="s1">if searchDisplayController</span><span class="s2">?.</span><span class="s1">active {</span></div>
<div class="p1">
<span class="s1"> // search mode</span></div>
<div class="p1">
<span class="s1">}</span></div>
<div class="p1">
<span class="s1">也可以判斷tableview是否是在search</span></div>
<div class="p1">
<span class="s1">那經過測試 這個方式是行得通的</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">參考來源:<a href="http://stackoverflow.com/questions/11159064/if-tableview-self-searchdisplaycontroller-searchresultstableview-fail">http://stackoverflow.com/questions/11159064/if-tableview-self-searchdisplaycontroller-searchresultstableview-fail</a></span></div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-13231636083252041022015-01-21T23:11:00.001-08:002015-01-22T03:35:31.748-08:00Swift iOS 輸入完後 讓虛擬鍵盤消失假設今天我們使用UITextField來做輸入<br />
iOS裝置會跳出一個虛擬鍵盤<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRG9VqyBYfcKzY5q7JlNnGwdzJUSnHxKS-zqVja8ULY-NWXH5iV_bOwKnvB8pQMqgrBmjgVbFO8j_srwwEuLOHa2oHo_gKiB8rPRZZDSbmG_2Q2J8CJB7s5ZodQO5qR2IVRHUgfjoD-s/s1600/2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRG9VqyBYfcKzY5q7JlNnGwdzJUSnHxKS-zqVja8ULY-NWXH5iV_bOwKnvB8pQMqgrBmjgVbFO8j_srwwEuLOHa2oHo_gKiB8rPRZZDSbmG_2Q2J8CJB7s5ZodQO5qR2IVRHUgfjoD-s/s1600/2.tiff" height="221" width="320" /></a></div>
<br />
我們要如何讓使用者輸入完畢後<br />
按下畫面的其他地方 就讓鍵盤自動消失呢?<br />
(原本iOS是不會讓它彈回去的哦)<br />
如果是這樣的話 這個比較簡單 可以參考以下的程式碼<br />
在你的UIViewController中 重寫touchEnded這個方法<br />
並在裡面叫你的UITextField resignFirstResponder()<br />
就能讓虛擬鍵盤退回去囉<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-9nWcOOfUiAEvHhFDFrRI3LAfHl6WraxLqVosVFFrthkpN13yjYIc1jHVVKCa4ULfJ3F5hOpy9b4oaxX3HfLAzDGIMIBUzHRfQIp6D0_ofjjP4V4Sl3fSn6XDpv-X7PRkrV7lGBT5uw/s1600/1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-9nWcOOfUiAEvHhFDFrRI3LAfHl6WraxLqVosVFFrthkpN13yjYIc1jHVVKCa4ULfJ3F5hOpy9b4oaxX3HfLAzDGIMIBUzHRfQIp6D0_ofjjP4V4Sl3fSn6XDpv-X7PRkrV7lGBT5uw/s1600/1.tiff" height="50" width="400" /></a></div>
<div>
<br /></div>
<div>
而若是要按下return後 就讓鍵盤消失</div>
<div>
則必須要這樣子做 (原先iOS也不會自己消失)</div>
<div>
先在UIViewController使用UItextFieldDelegate這個協定</div>
<div>
(協定protocol其實就像是Java的介面Interface)</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcflZCCKe995PIEdVreTntb2oU9DzlVckQUAWC4lLzDXv2Zbde8udiYbT67wMHJtgW-Y5-mVpV3ZgywdypIDPo56XLfl1Jgv98VBNGGU4EVdwtLFRgdM1vL1kT8MKddhKsG21L80iaN1s/s1600/3.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcflZCCKe995PIEdVreTntb2oU9DzlVckQUAWC4lLzDXv2Zbde8udiYbT67wMHJtgW-Y5-mVpV3ZgywdypIDPo56XLfl1Jgv98VBNGGU4EVdwtLFRgdM1vL1kT8MKddhKsG21L80iaN1s/s1600/3.tiff" height="35" width="400" /></a></div>
<div>
再來讓我們的UITextField可以操作到這個協定</div>
<div>
那因為協定是訂在UIViewController身上 所以我們使用self來取得</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJgXnDRQaO4bRiOzUocRbl4LB9gX6ejKdrYwY3PhCfK6Lbxol2m4IZvUW3FP_0AWNFTyO_lXjFIwbwJzscQkewuoRYzykQaP7UZ1lGjJQpOuBYmOl-vND9qeC0ocHUhZxB7QQGoTICp40/s1600/4.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJgXnDRQaO4bRiOzUocRbl4LB9gX6ejKdrYwY3PhCfK6Lbxol2m4IZvUW3FP_0AWNFTyO_lXjFIwbwJzscQkewuoRYzykQaP7UZ1lGjJQpOuBYmOl-vND9qeC0ocHUhZxB7QQGoTICp40/s1600/4.tiff" height="13" width="200" /></a></div>
<div>
接著再重寫這個textFieldShouldReturn方法</div>
<div>
然後裡面讓他resignFirstResponder()</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY6VKyAcU0mX2UbxzzbuYpEOU7dTw2K5mDvrkMZZMxJCetANZQ2o9ftLd__FUPAhXGBZyW7KsBE6yktsaz_YAAPRqiyLqk4aW2j7GE7br8MwmqqBJB_GJT0jU2bKZCLIhpKNwscAZhJhg/s1600/5.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY6VKyAcU0mX2UbxzzbuYpEOU7dTw2K5mDvrkMZZMxJCetANZQ2o9ftLd__FUPAhXGBZyW7KsBE6yktsaz_YAAPRqiyLqk4aW2j7GE7br8MwmqqBJB_GJT0jU2bKZCLIhpKNwscAZhJhg/s1600/5.tiff" height="34" width="320" /></a></div>
<div>
就完成囉!<br />
<br />
參考網址:<a href="http://www.imooc.com/video/3704">http://www.imooc.com/video/3704</a></div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-21978580295977814402015-01-21T06:13:00.000-08:002015-01-21T06:19:44.269-08:00Swift 在iOS 7~8 對話框 UIAlertView/UIAlertController假設我們的App有個部分要讓使用者輸入數值<br />
但是使用者忘記輸入 這時我們可以彈出一個框框警告一下<br />
可是我發現在iOS 7跟8的寫法是不一樣的呀<br />
讓我們看看下面的情形吧<br />
<br />
這是我們的成果 先看一下<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-0_RoO25dymxppvp2BxB7I2AokJtuJhdgzP8QAM90sJ-n30vQpP_073aio25tk105rrOwiPUN37jUOsGRKL5RO5yeAcG5Hju0YObl4msk02qzutv73jJMyeTcBK_f6P7iBM1eYLy028/s1600/1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-0_RoO25dymxppvp2BxB7I2AokJtuJhdgzP8QAM90sJ-n30vQpP_073aio25tk105rrOwiPUN37jUOsGRKL5RO5yeAcG5Hju0YObl4msk02qzutv73jJMyeTcBK_f6P7iBM1eYLy028/s1600/1.tiff" height="149" width="320" /></a></div>
<br />
<br />
再來看iOS 8的寫法 使用UIAlertController 感覺比較複雜<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXaiVwdvBfApQITo5X6R718tM9eJ6BwOib5Mtuqipl4Q4IW43yKX9-GSnv56BRhMCugxZXGAYzsdqORR_8ZjRHnpVSL8a3szjtO3aeFSyVMbEHlMzWX2FomatskUhGbPBlJdv4cM7kDM/s1600/2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXaiVwdvBfApQITo5X6R718tM9eJ6BwOib5Mtuqipl4Q4IW43yKX9-GSnv56BRhMCugxZXGAYzsdqORR_8ZjRHnpVSL8a3szjtO3aeFSyVMbEHlMzWX2FomatskUhGbPBlJdv4cM7kDM/s1600/2.tiff" height="43" width="640" /></a></div>
<br />
iOS 7的寫法就簡單多了 可是這在iOS 8是deprecated<br />
建議使用上面的寫法<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZLKzTKzgOMuvTDOmI3bJ1pQuGmNfMPdFtaDZ1LNXBE11kLuDeilptJ_nNx_A0VZV-GeKaF2HVyNCWrZCMzCEH75-DLj_GmggZ_Go-N2hmsuCALEIO3tScRo4ReNlcMcy3d-AdWUTBYQ/s1600/3.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZLKzTKzgOMuvTDOmI3bJ1pQuGmNfMPdFtaDZ1LNXBE11kLuDeilptJ_nNx_A0VZV-GeKaF2HVyNCWrZCMzCEH75-DLj_GmggZ_Go-N2hmsuCALEIO3tScRo4ReNlcMcy3d-AdWUTBYQ/s1600/3.tiff" height="55" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
所以我看到stackoverflow有一個這樣子的寫法</div>
<div class="separator" style="clear: both; text-align: left;">
他先判斷UIAlertController這個Class是否存在</div>
<div class="separator" style="clear: both; text-align: left;">
如果有存在就使用UIAlertController</div>
<div class="separator" style="clear: both; text-align: left;">
回傳值為nil代表不存在 就使用UIAlertView</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrmXbxBYnrdMecpUrfo5uM__gSjwJG59r9wl61zXFJLH8kO92MdD7Zz0CODz7MyI7loVKNn3j8Z2r4Pwh6Z1bHIiUu3z15wlibT_scXebAvE4oWqyV3ebYyaneJergsmf5Z52EYECkVSs/s1600/4.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrmXbxBYnrdMecpUrfo5uM__gSjwJG59r9wl61zXFJLH8kO92MdD7Zz0CODz7MyI7loVKNn3j8Z2r4Pwh6Z1bHIiUu3z15wlibT_scXebAvE4oWqyV3ebYyaneJergsmf5Z52EYECkVSs/s1600/4.tiff" height="168" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
所以上面的程式碼就改成</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipODOjGsdPnAI2fm2vzctftgAzWQ5XNkG2sYquo_KREbjP_mWSGkIFwOe3SEQ4Vlb77DRHuSLG7q72ruIa1RhUKS46lP7a_tF6xuIbH07WJyePYhEXXF0-hX3jxI29B3_o4lUTdpMTPHQ/s1600/5.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipODOjGsdPnAI2fm2vzctftgAzWQ5XNkG2sYquo_KREbjP_mWSGkIFwOe3SEQ4Vlb77DRHuSLG7q72ruIa1RhUKS46lP7a_tF6xuIbH07WJyePYhEXXF0-hX3jxI29B3_o4lUTdpMTPHQ/s1600/5.tiff" height="16" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
當然這樣子寫有一點過於複雜了</div>
<div class="separator" style="clear: both; text-align: left;">
所以有人建議說 當你不支援iOS 7的時候</div>
<div class="separator" style="clear: both; text-align: left;">
這時在完全用UIAlertController</div>
<div class="separator" style="clear: both; text-align: left;">
在這之前用UIAlertView寫 Apple也不會管你的 呵呵</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
參考網站:<a href="http://stackoverflow.com/questions/24022479/how-would-i-create-a-uialertview-in-swift">http://stackoverflow.com/questions/24022479/how-would-i-create-a-uialertview-in-swift</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-49418773792843701422015-01-19T20:03:00.002-08:002015-01-19T20:07:57.176-08:00Swift eunm fromRaw() and toRaw() in Xcode 6.1首先我們先建立一個Rank的列舉 大致如下<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-mRU90WyUBiNFwAUs_rkQDKMF75NjBNr6tpytAOnjA8uL6BATr5aqpszpjZusFAxwzU5I0mP8pPIoFxjYncm1nndD1irmH-wBJRFwtxq2k-celcuuU7xw4j7o0jKdlP9ZVNo0SgSzo0o/s1600/eunm1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-mRU90WyUBiNFwAUs_rkQDKMF75NjBNr6tpytAOnjA8uL6BATr5aqpszpjZusFAxwzU5I0mP8pPIoFxjYncm1nndD1irmH-wBJRFwtxq2k-celcuuU7xw4j7o0jKdlP9ZVNo0SgSzo0o/s1600/eunm1.tiff" height="245" width="400" /></a></div>
我們可以看到Ace = 1 有趣的是<br />
就算我們沒有給Two, Three...值 他也會遞增給予值<br />
所以Two = 2, Three = 3<br />
到最後的Jack = 11, King = 13<br />
<br />
要注意的是 在Xcode 6.1當中<br />
已經沒有fromRaw()這個方法了<br />
改為列舉的屬性rawValue<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimVG1Pd2Gtbqo9rUN-Zpwi-kDx_YAztQrPmhC3lfLFaNgBioXYeAd61Fcca9spLqmP_1Daviqy-rNfttNvOQkajCfjrCvTP7N1XwknYv3cRwWbmT0CPARTzoPJHK7MyoJzQ0JNNHV91rk/s1600/enum2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimVG1Pd2Gtbqo9rUN-Zpwi-kDx_YAztQrPmhC3lfLFaNgBioXYeAd61Fcca9spLqmP_1Daviqy-rNfttNvOQkajCfjrCvTP7N1XwknYv3cRwWbmT0CPARTzoPJHK7MyoJzQ0JNNHV91rk/s1600/enum2.tiff" height="19" width="400" /></a></div>
在這邊我們宣告一個常數ace取得Rank中ace的列舉值<br />
ace再轉換成rawValue就可以看到原先的整數值:1<br />
<br />
toRaw()這個方法也被替換掉了<br />
取而代之的是以下的寫法<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgypXr127bMFV1MtrPVITC8aMSjAUNzbILdMMuBo3YVcU-hgQxHTLUoWz4ubxRWqksl0q9CxFAp-fl_pngJzVOAOBN6OZ1jC2KdniEhbInDFtCGNrFPHM92kRbh37DcmTRnLdSasTng1kA/s1600/enum3.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgypXr127bMFV1MtrPVITC8aMSjAUNzbILdMMuBo3YVcU-hgQxHTLUoWz4ubxRWqksl0q9CxFAp-fl_pngJzVOAOBN6OZ1jC2KdniEhbInDFtCGNrFPHM92kRbh37DcmTRnLdSasTng1kA/s1600/enum3.tiff" height="20" width="400" /></a></div>
我把raw為1的列舉值記在rawAce當中<br />
你可以看到 他跟ace是相同的列舉值<br />
<br />
大家也可以看看stackoverflow 這邊也有人在討論<br />
看看第3個回應 解說得還不錯<br />
<a href="http://stackoverflow.com/questions/26444107/enums-rawvalue-property-not-recognized">http://stackoverflow.com/questions/26444107/enums-rawvalue-property-not-recognized</a>Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-39102902293482231162015-01-16T01:26:00.003-08:002015-01-16T01:27:59.622-08:00Macbook Pro趁大學時 我利用教育方案買了Mac<br />
會想買的原因是最主要的因為想要開發iOS<br />
我家裡原先就有一台抽到的iPad<br />
但是我卻只是拿來玩遊戲<br />
這感覺辜負了上天給我的機會<br />
再加上我妹妹也需要一台電腦<br />
所以我就買了這台Pro 而我舊的Acer就給我妹妹用吧<br />
<br />
我預計是在寒假的時候來學習開發iOS的應用程式<br />
因此我在這個時間入手<br />
我在剛剛打開的感覺很刺激<br />
不過OS X已經不像以前了 現在很扁平化 就像iOS7~8<br />
真的跟我的iPad越來越像了 哈哈<br />
<br />
一開始最不適應的是中英文的轉換<br />
一定要跑到左上角用滑鼠切<br />
不過知道快捷鍵之後就好了<br />
command + space<br />
其實跟Windows一樣嘛~<br />
在Linux中 切換中文可是用ctrl + alt + 6 呢!<br />
雖然可以改 不過已經習慣了 呵呵<br />
<br />
說到輸入法 中文注音在OS X是比較不一樣的<br />
按下大小寫的轉換caps lock 不是轉大小寫<br />
是轉成英文 那要輸入英文該怎麼辦呢?<br />
要按著shift就可以變大小囉<br />
我也接著發現 我在Linux的輸入法也是如此<br />
我本以為是Bug 原來這是Mac的操作模式呀!<br />
<br />
再來第二個覺得奇特的就是<br />
點x是關掉應用程式沒有錯<br />
但是並不是結束應用程式<br />
要結束的話請用快捷鍵command + q哦!<br />
<br />
話說command鍵就好像Windows的ctrl鍵呢<br />
不過Mac上面也有ctrl啊<br />
叫做control 不過我目前還沒有看到它的用途<br />
<br />
還記得2小時之前用的感覺 感覺比Linux用起來還怪異呢<br />
畢竟Linux有些還是跟Windows的概念很像<br />
不過其實用了OS X之後也會發現<br />
很多Linux的操作也是源自OS X的呢!<br />
<br />
好啦! 現在我在下載Android Studio 來聊聊點其他的吧<br />
之前去台灣Google總部參觀的時候<br />
發現其實那邊的工程師都是用Mac喲<br />
要不然就是其他品牌的螢幕 但都是OS X的畫面<br />
真的是很有趣呢Google跟Apple不是對手嗎?<br />
Google卻在使用OS X呢 這代表品質真的是很優良吧!<br />
<br />
該結束了 難得打那麼長的文章<br />
不過最後我還有一個問題還沒解決<br />
Pro的喇叭在哪呀 我可以播音樂卻看不到喇叭 真怪呢!<br />
希望之後我能把iOS學得很好<br />
開發出大家都喜歡的優質App哦!Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-78996042789382960142014-12-16T04:09:00.000-08:002014-12-16T04:09:36.652-08:00Windows Android Studio - No JVM Installation found有一種情形是 你事先裝了32Bit的版本<br />
可是現在的Android Studio會建議你使用64Bit<br />
所以你必須先下載64Bit的JDK<br />
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html<br />
前往 控制台\系統及安全性\系統<br />
點選進階系統設定/進階/環境變數<br />
新增一個環境變數JDK_HOME 指向你64Bit的JDK檔案<br />
再開啟一次Android Studio 就完成了<br />
<br />
以上參考至此:<br />
http://stackoverflow.com/questions/24898684/android-studio-no-jvm-installation-foundAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-48645133409470144882014-12-16T00:54:00.003-08:002014-12-16T00:54:36.047-08:00Linux中 Android Studio Error:Failed to find: com.android.support:appcompat-v7:21.+基本上安裝需要的套件一下就能解決<br />
但是Linux環境下 由於安裝路徑<br />
可能會存在只有Root才可使用的檔案<br />
請將這個檔案的權限修改為使用者可以寫入的權限<br />
(我的檔案是temp檔)Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-39687155517513471022014-12-16T00:04:00.001-08:002014-12-16T00:04:24.169-08:00Anroid Studio Error:compileSdkVersion android-21 requires compiling with JDK 7請將你的JDK路徑修改成/usr/lib/jvm中的第7版即可Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-66314890081703088302014-11-26T00:56:00.001-08:002014-11-26T00:56:05.509-08:00Android資源 VerticalProgressBar由於Android原先並沒有提供垂直型的ProgressBar<br />
這邊有Halzhang別人寫好的 VerticalProgressBar 大家可以參考利用看看<br />
<br />
https://github.com/halzhang/Android-VerticalProgressBarAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-18099784024940865542014-11-23T17:13:00.001-08:002014-11-23T17:13:24.678-08:00Android Warning:onTouch should call View#performClick when a click is detected<pre class="default prettyprint prettyprinted" style="background: rgb(238, 238, 238); border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17.8048000335693px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;"><code style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">public</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">boolean</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> onTouch</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="typ" style="background: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;">View</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> v</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">,</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="background: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;">MotionEvent</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">event</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">)</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">{</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">switch</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">event</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">getAction</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">())</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">{</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">case</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="background: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;">MotionEvent</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">ACTION_DOWN</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">:</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="com" style="background: transparent; border: 0px; color: grey; margin: 0px; padding: 0px; vertical-align: baseline;">//some code....</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">break</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">;</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">case</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="background: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;">MotionEvent</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">ACTION_UP</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">:</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
v</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">performClick</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">();//這邊必須補上 否則會有此警告</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">break</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">;</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">default</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">:</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">break</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">;</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">}</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">return</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="kwd" style="background: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;">true</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">;</span><span class="pln" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">}</span></code></pre>
參考答案:http://stackoverflow.com/questions/24952312/ontouchlistener-warning-ontouch-should-call-viewperformclick-when-a-click-is-d<pre class="default prettyprint prettyprinted" style="background: rgb(238, 238, 238); border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17.8048000335693px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;"><code style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span class="pun" style="background: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span></code></pre>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-70639119645725254562014-11-23T17:00:00.003-08:002014-11-23T17:13:34.030-08:00Eclipse:workspace in use or cannot be created choose a different one前往你的workspace資料夾<br />
<div>
並且進入.metadata資料夾</div>
<div>
並刪除.lock檔案</div>
<div>
<br /></div>
<div>
參考解答:<a href="http://stackoverflow.com/questions/7465793/eclipse-workspace-in-use-or-cannot-be-created-chose-a-different-one">http://stackoverflow.com/questions/7465793/eclipse-workspace-in-use-or-cannot-be-created-chose-a-different-one</a></div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-68387438985377748022014-11-17T18:38:00.000-08:002014-11-17T19:29:17.576-08:00轉貼:Android 自定義Dialoghttp://loginleft.iteye.com/blog/1975980<br />
http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.html<br />
http://www.dotblogs.com.tw/superlm102/archive/2013/02/05/90118.aspx<br />
http://www.cnblogs.com/archie2010/p/3256047.htmlAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-66055870531845840222014-11-16T17:48:00.001-08:002014-11-16T17:48:08.987-08:00轉貼:Git教學 那些老師沒教的事很大的一份簡報 共238頁<br />
有機會來好好研究一下<br />
http://www.slideshare.net/taichunmin/ss-16096723Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-12164138209229784432014-11-13T00:23:00.002-08:002015-01-28T20:44:19.543-08:00Android Studio快捷鍵<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + Space:程式碼提示</span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + Alt + L</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:我自訂的自動縮排(因為Linux有衝突 所以我改成</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + Shift + Q</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">)</span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"> + Y : 刪除整行程式碼</span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + D 有選取部份:複製又貼上/沒選取:貼上</span><span class="text_exposed_show" style="background-color: white; color: #141823; display: inline; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"><br />Ctrl + Shift + / :/* */<br />Ctrl + / ://<br />Ctrl + B:顯示錯誤點(同Ctrl + 左鍵)<br />Shift + F10:執行<br />Ctrl + Shift + Space:方法的參數提示<br />Ctrl + F4:關閉頁面</span><br />
<span class="text_exposed_show" style="background-color: white; color: #141823; display: inline; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"><span style="line-height: 20.7000007629395px;">Ctrl + ~:編輯環境的設定</span></span><br />
<span style="color: #141823; font-family: Helvetica, Arial, lucida grande, tahoma, verdana, arial, sans-serif;"><span style="background-color: white; font-size: 15px; line-height: 20.7000007629395px;">Alt + 左右方向鍵:往...換頁面</span></span><br />
<span style="color: #141823; font-family: Helvetica, Arial, lucida grande, tahoma, verdana, arial, sans-serif;"><span style="background-color: white; font-size: 15px; line-height: 20.7000007629395px;">Alt + 6:顯示Log Cat (Mac : Command + 6)</span></span><br />
<span class="text_exposed_show" style="background-color: white; color: #141823; display: inline; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + F:尋找文字</span><br />
<span class="text_exposed_show" style="background-color: white; color: #141823; display: inline; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"><span style="line-height: 20.7000007629395px;">Ctrl + ~:尋找並取代</span></span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Shift + F6</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:重新命名</span><span class="text_exposed_show" style="background-color: white; color: #141823; display: inline; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"><span style="line-height: 20.7000007629395px;"><br /></span></span><span style="color: #141823; font-family: Helvetica, Arial, lucida grande, tahoma, verdana, arial, sans-serif;"><span style="background-color: white; font-size: 15px; line-height: 20.7000007629395px;">其他</span></span><br />
<span style="color: #141823; font-family: Helvetica, Arial, lucida grande, tahoma, verdana, arial, sans-serif;"><span style="background-color: white; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + N</span></span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:在編輯器中打開任何Class</span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"> + Q</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:觀看類別或方法的文件</span><br />
<span style="color: #141823; font-family: Helvetica, Arial, lucida grande, tahoma, verdana, arial, sans-serif;"><span style="background-color: white; font-size: 15px; line-height: 20.7000007629395px;">Ctrl + F12</span></span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:導航目前編輯的檔案</span><br />
<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">Ctrl</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;"> + O</span><span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:</span>override methods of the base class<br />
Alt + Insert<span style="background-color: white; color: #141823; font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 15px; line-height: 20.7000007629395px;">:</span>generate getter and setter methods for any fields of your class.Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com2tag:blogger.com,1999:blog-8873268632192475770.post-56132824950530343582014-11-12T22:21:00.003-08:002014-11-12T22:21:56.450-08:00Linux Android Studio 自動縮排快捷鍵問題由於Android Studio的自動縮排快捷鍵是<br />
Ctrl + Alt + L<br />
這個跟Linux的鎖住畫面是相同的<br />
所以你按下Ctrl + Alt + L 你會先被鎖住畫面<br />
<br />
因此我們必須修改快捷鍵 前往<br />
File -> Settings -> Editor -> Keymap -> MainMeny -> Code下的Reformat Code<br />
為它添加新的快捷鍵或者是做修改<br />
例如Ctrl + Shift + Q<br />
(這邊很多快捷鍵多被設定過了<br />
要找沒有被設定過的快捷鍵其實還滿難找的)Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-13339090645878624592014-11-12T18:19:00.003-08:002014-11-16T17:45:00.239-08:00Kali Linux 安裝Android Studio首先請自這邊下載<br />
https://developer.android.com/sdk/installing/studio.html<br />
<br />
前往Downloads/<br />
cd Downloads/<br />
<div>
解壓縮</div>
sudo unzip android-studio-ide-135.1538390-linux.zip<br />
請用root權限來操作 因為一開始他沒有給使用者很大的權限<br />
我們先把他移到~來<br />
<div>
<div>
sudo mv android-studio ~</div>
</div>
<div>
給予權限 757</div>
<div>
chmod 757 android-studio/</div>
<div>
接下來我們要開啟Android Studio 進入android-studio資料夾</div>
<div>
<div>
cd android-studio/</div>
</div>
<div>
進入bin檔 可是缺乏權限 所以我們給個權限</div>
<div>
sudo chmod 757 bin</div>
<div>
再進入bin檔 </div>
<div>
<div>
cd bin/</div>
</div>
<div>
sh裡面的studio.sh就可開啟 可是一樣有缺乏權限的問題 </div>
<div>
sudo chmod 757 studio.sh </div>
<div>
執行 成功開啟Android Studio</div>
<div>
sh studio.sh </div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-38537140134434475282014-11-12T16:33:00.001-08:002014-11-12T16:33:43.133-08:00轉貼:新版eclipse 出現appcompat的問題解法在此 新版問題還滿多的<br />
難怪有些人跑去弄Android Studio了<br />
http://jpress.tw/android-project-error-appcompat_v7-other-problemAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-74072696559351583132014-11-11T22:26:00.001-08:002014-11-16T17:44:50.837-08:00轉貼:Kali Linux Eclipse 快捷键(alt + /)失效這問題也有人在Ubuntu出現過 請參考這邊<br />
http://duanyong.iteye.com/blog/397511Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-47236503531936503602014-11-11T20:44:00.005-08:002014-11-11T20:44:37.006-08:00轉貼:Kali Linux安裝TeamViewer 以一般方法無法安裝之解法2 Answers的方法雖然步驟滿多的<br />
但是我有成功 大家可以試試看<br />
http://askubuntu.com/questions/362951/installed-teamviewer-using-a-64-bits-system-but-i-get-a-dependency-errorAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-72828053699910515312014-11-10T18:40:00.000-08:002014-11-16T17:45:11.720-08:00Kali Linux 安裝Genymotion步驟(尚未完全解決)首先辦個帳號 步驟不多 以後也用得到<br />
之後前往官網下載Genymotion<br />
由於Kali是Debain的版本 所以選擇Linux Debian 64 bits<br />
不過也因為只有64bits 所以32bits我就不清楚囉<br />
https://cloud.genymotion.com/page/launchpad/download/<br />
<br />
載好之後開啟會有問題<br />
之後前往Downloads/開始安裝<br />
cd Downloads/<br />
但是缺乏權限所以加入執行權限<br />
sudo chmod +x genymotion-2.3.0_x64_debian.bin<br />
執行開始安裝<br />
<div>
./genymotion-2.3.0_x64_debian.bin</div>
<div>
<br /></div>
<div>
安裝完後直接開啟Genymotion會有問題</div>
<div>
因為沒有裝VirtualBox 先到下面的網址去</div>
<div>
https://www.virtualbox.org/wiki/Linux_Downloads</div>
<div>
開始挑版本 我們先看看自己的版本適合哪種</div>
<div>
cat /proc/version </div>
<div>
本人得到</div>
<div>
<div>
Linux version 3.12-kali1-amd64 (debian-kernel@lists.debian.org) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Debian 3.12.6-2kali1 (2014-01-06)</div>
</div>
<div>
所以我是amd64 再來請選擇Debian 7.0 ("Wheezy")</div>
<div>
因為6.0的Kali好像不適用 我安裝會失敗</div>
<div>
<br /></div>
<div>
接著要安裝一個Kali沒有的東西 dkms</div>
<div>
因為安裝VirtualBox會用到 我們要先安裝</div>
<div>
sudo apt-get install dkms</div>
<div>
(官網在這邊也有提到:https://cloud.genymotion.com/page/faq/#vbox)</div>
<div>
<br /></div>
<div>
安裝dkms好後前往Downloads/</div>
<div>
<div>
cd Downloads/</div>
</div>
<div>
再來開始安裝VirtualBox</div>
<div>
sudo dpkg -i virtualbox-4.3_4.3.18-96516~Debian~wheezy_amd64.deb </div>
<div>
<br /></div>
<div>
後續的VirtualBox會有問題(其實是Waring 但這會導致Genymotion無法正確開啟)<br />
我花了1天才解決 是在進行超多次的測試 之後重開機才成功的<br />
所以我也不清楚我是如何完成的<br />
我差點都放棄了 是一直拿錯誤訊息去Google才做到的...</div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-7751310124398235042014-11-10T17:06:00.001-08:002014-11-16T17:45:18.605-08:00Kali Linux 建制Android開發環境會出現的問題android-sdks/build-tools/17.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory<br />
<br />
可參考網址如下<br />
http://stackoverflow.com/questions/17020298/android-sdks-build-tools-17-0-0-aapt-error-while-loading-shared-libraries-libzAnonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0tag:blogger.com,1999:blog-8873268632192475770.post-70485853772712868572014-11-09T21:46:00.001-08:002014-11-09T21:46:06.939-08:00Linux *.zip壓縮:<div>
[ jonny@linux ~ ] $ zip FileName.zip DirName</div>
<div>
解壓縮:</div>
<div>
[ jonny@linux ~ ] $ unzip FileName.zip</div>
<div>
<br /></div>
<div>
詳細可參考這位大大的文章:<br />http://note.drx.tw/2008/04/command.html</div>
Anonymoushttp://www.blogger.com/profile/12658490969901106127noreply@blogger.com0