[IOS] TARGET _ IPHONE _ SIMULATOR 使用

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

[IOS] TARGET _ IPHONE _ SIMULATOR 使用_第1张图片

並為其加上 "-D IOS_SIMULATOR" (不需加引號)

[IOS] TARGET _ IPHONE _ SIMULATOR 使用_第2张图片

使用上如下

#if IOS_SIMULATOR
    // is a simulator
#else
    // not a simulator
#endif

你可能感兴趣的:([IOS] TARGET _ IPHONE _ SIMULATOR 使用)