Sharekit打开Safari以获得用户的身份验证,这很好(不确定它是否应该打开Safari或在它自己的窗口中).然后会出现一个页面,说明您已通过身份验证app.x单击确定继续,一旦点击继续按钮,它会尝试重定向到www.facebook.com/permissions.request但显示错误:
"无法打开页面,Safari无法打开此页面,因为地址无效."
任何想法可能会发生在这里,我认为它应该重定向到我的应用程序?!
好的,所以我在Facebook上创建了一个新帐户,但使用了"为名人,乐队或企业创建页面"的链接,我选择了品牌或产品并注册了.现在我绝对不可能通过我的新Facebook账户获得API,没有选择获得API密钥,事实上我花了半天时间试图找出答案.我决定登录我的个人Facebook帐户并获得一个API密钥,设法在10秒内完成,所以为什么如果你设置一个帐户作为品牌或产品,如此难以获得API密钥?
我很欣赏这个问题可能看起来很奇怪,但基本上我是在从后端数据库中提取坐标后向地图添加注释.添加的注释量因用户而异.
let details = Annotation(title: "\(userName)",
locationName: "",
coordinate: CLLocationCoordinate2D(latitude:convertLat!, longitude: convertlon!))
self.mapView.addAnnotation(details as MKAnnotation)
self.mapView.selectAnnotation(details, animated: true)
Run Code Online (Sandbox Code Playgroud)
我遇到的麻烦是我想以特定的间隔更新"详细信息"注释的坐标,但我无法访问"详细信息"注释,因为它当然超出了范围.
例如,是否可以通过其标题名称访问注释并相应地更改其坐标?
另一种方法是删除所有注释并使用更新的坐标重新创建它们,但这是我试图避免的.
值得注意的是,出于多种原因,我不能简单地在我的方法之外创建细节注释.
谢谢.
更新 所以我正在尝试一种略有不同的方法,如下所示:
for annotation in mapView.annotations as [MKAnnotation] {
if (annotation as AnyObject).title == "Title of annotation" {
annotation.title = "Change to something else"
}
}
Run Code Online (Sandbox Code Playgroud)
但是我无法更改标题,因为Swift告诉我这是一个"只获取"属性,我不明白为什么.
将注释添加到mapView:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
// if (annotation is MKUserLocation) { return nil }
let reuseID = "icon"
var v = mapView.dequeueReusableAnnotationView(withIdentifier: reuseID)
if …
Run Code Online (Sandbox Code Playgroud)