在 Swift 2 Xcode 7 Beta 4 中设置基于位置的提醒时出错

Posted

技术标签:

【中文标题】在 Swift 2 Xcode 7 Beta 4 中设置基于位置的提醒时出错【英文标题】:Error when setting location based reminders in Swift 2 Xcode 7 Beta 4 【发布时间】:2015-07-29 19:05:44 【问题描述】:

我想设置基于位置的提醒。这是我的代码:

    let locattionnotification = UILocalNotification()
    locattionnotification.alertBody = textAllert
    locattionnotification.regionTriggersOnce = false
    locattionnotification.region = CLCircularRegion(circularRegionWithCenter: CLLocationCoordinate2D(latitude:
        mylatitude, longitude: mylongitude), radius: 300.0, identifier: "Location1")
    UIApplication.sharedApplication().scheduleLocalNotification(locattionnotification)

mylatitude 和 mylongitude 是双精度值。问题是,Xcode 抱怨:

init(circularRegionWithCenter:radius:identifier:)' 不可用:API >在 ios 7 及更早版本中弃用,在 Swift 中不可用

有没有更好的方法来设置基于区域的提醒?我已经做了一些研究,发现使用 CLRegion 也可以,但无法弄清楚如何使用手动设置坐标进行设置。

【问题讨论】:

【参考方案1】:

你可以使用another CLCircularRegion constructor:

locattionnotification.region = CLCircularRegion(center: CLLocationCoordinate2D(latitude:
    mylatitude, longitude: mylongitude), radius: 300.0, identifier: "Location1")

【讨论】:

这个答案似乎破坏了 UILocalNotification 的区域退出通知和进入通知属性。以下代码“locationnotification.region.notifyOnExit = false”不再有效,因为 swift 抱怨“可选类型 'CLRegion 的值?'没有拆开。”我怎样才能让它的这部分工作? 更改为locationnotification.region!.notifyOnExit = false。并了解optional types - 你会经常遇到它们。

以上是关于在 Swift 2 Xcode 7 Beta 4 中设置基于位置的提醒时出错的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Swift 2 在 Xcode 7 beta 中导入 FBSDK

Xcode 7 beta 5、Swift 2:UITableViewCell 的子视图在运行时未添加到 contentView

swift 2.0(XCode 7 beta 5)中的拆分方法

Swift 2/Xcode 7 beta - 多个位掩码产生错误

Xcode 6 beta 4中的Swift有哪些改变?

XCTest Xcode 7 beta 3 swift 2 从情节提要问题启动视图控制器