TARGET _ IPHONE _ SIMULATOR 使用
最近使用 APNs,取得 Device Token 後做了一段驗證,檢查是否取得了 Device Token,但在模擬器上是取不到這 Device Token,因此在模擬器上會跳過這段驗證。
但是在使用上邏輯搞不太定,雖然不影響使用。
#if TARGET_IPHONE_SIMULATOR
// xxx
#else
// ooo
#endif
if else
的使用我想我應該沒理解錯誤吧。
- 結果為真:進xxx這段
- 結果為假:進ooo這段
在模擬器上TARGET_IPHONE_SIMULATOR
回傳值為1,表示是模擬器
,但是在模擬器上會進 // ooo 這段,搞得我好亂啊!!
2017/08/10更新
發現 TARGET _ IPHONE _ SIMULATOR 回傳的數值其實是不穩定的,具體原理不是很懂,不過找到替代方案了。
在 Targets > Build Settings > Other Swift Flags > debug 中
新增一個 Any iOS Simulator
並為其加上 "-D IOS_SIMULATOR" (不需加引號)
使用上如下
#if IOS_SIMULATOR
// is a simulator
#else
// not a simulator
#endif