[英]iOS4 code on iOS3 devices
是否可以在應用程序中使用iOS4特定代碼(即MKMapView覆蓋),使用4.0構建,將部署目標設置為3.0,並且只要未在3.x設備上調用iOS4代碼,它仍然可以工作?
我現在正嘗試這樣做,並且只在設備支持的情況下調用iOS4代碼,但我無法安裝它。 GDB嚇壞了。 這是我為iOS3設備構建時得到的結果:
dyld: Symbol not found: _OBJC_CLASS_$_MKOverlayView
Referenced from: /var/mobile/Applications/1EE8EC13-FA01-43CB-A617-9B5D268ECD13/maps.app/maps
Expected in: /System/Library/Frameworks/MapKit.framework/MapKit
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Not safe to call dlopen at this time.)
mi_cmd_stack_list_frames: Not enough frames in stack.
mi_cmd_stack_list_frames: Not enough frames in stack.
我希望這個應用程序在3.0及更高版本上運行,並在4.0設備上使用新的MKMapView覆蓋。
具體地講,我實現在WWDC證明平鋪圖像覆蓋的代碼,它使用自定義TileOverlay
實現該MKOverlay
協議,和一個自定義TileOverlayView
這是一個子類MKOverlayView
。
您需要使用Base SDK設置為4.0並將Deployment Target設置為3.0來構建。
然后,當嘗試使用僅存在於4.0中的類時,請使用NSClassFromString(“MKOverlayView”)或其調用的任何內容。 如果該類不存在,那將返回nil。
來自Matt Gallagher的這篇文章提供了有關此類情況的更詳細提示:
http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html
嘗試弱鏈接MapKit框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.