台灣經緯度TWD97

昨天跟朋友去hackthon,做的題目裡面有一關是要做TW97轉WGS84。找了一下資料,有很多朋友都寫過各種語言的轉換function。
至於為什麼要有這麼多格式要轉換我想下面連結裡面隨便點一篇就知道了。

python
經緯度轉換TWD97

C#
WGS84經緯度與TWD97(TM2)投影坐標轉換程式

Ruby的
[Note] 二度分帶座標轉換爲經緯度

可惜我找不到objC版的(連C的也沒有),就順手寫了一個。
在github,寫好後聽朋友說這個寫法只有在本島會準,在蘭嶼澎湖需要再微調。


如何防止class dump

要防的東西分為三類:
  1. class
  2. variable
  3. method
最簡單法,通解,讓別人看不懂這些東西是在幹嘛的,Obfuscating(混淆),把平常口語話看得懂的所有東西混淆成看不懂的亂碼,但是邏輯依然存在,發現邏輯了以後還是可以輕鬆愉快的找出來。



比較正規的作法,根本不要出現:

variable:如果是property,改用@dynamic 而不是@synthesize,@dynamic 意義在於不會建立setter getter 也沒有建立個local variable,也就dump不出來了。可以用method swizzling在拿setter getter的時候轉給其他名字上聯想不到的method處理。

method:有很多種保護法,比如說在runtime的時候才註冊method、
把method寫成INLINE function、或者把method用c寫。