//Google Map
var latitude = $('#google-map').data('latitude')
var longitude = $('#google-map').data('longitude')
function initialize_map() {
var myLatlng = new google.maps.LatLng(latitude,longitude);
var mapOptions = {
zoom: 14,
scrollwheel: false,
disableDefaultUI: true,
center: myLatlng
};
var map = new google.maps.Map(document.getElementById('google-map'), mapOptions);
var contentString = '';
var infowindow = new google.maps.InfoWindow({
content: '<div class="map-content"><ul class="address">' + $('.address').html() + '</ul></div>'
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
google.maps.event.addDomListener(window, 'load', initialize_map);
google.maps.event.addDomListener(window, 'resize', function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
}
作为一个标题,它一直在说#34;意外地发现nil,同时打开一个Optional值&#34;在我画的那条线上。
关于这个问题有很多问题,很难为我阅读代码,即使我不知所措,我也没有做好。
我应该在哪里使用可选绑定?
你可以用非常简单的例子来解释它是什么是可选绑定吗?
谢谢
答案 0 :(得分:0)
您需要在循环播放之前解开帖子,因为posts: [AnyObject]?
是可选的。
if error == nil {
if let postData = posts{
//success fetxhing objects
println(postData?.count)
for post in postData! {
self.imageFiles.append(post["imageFile"] as! PFFile)
self.imageText.append(post["imageText"] as! String)
}
println(self.imageFiles.count)
}
}else{
println(error)
}
答案 1 :(得分:0)
您的post
字典不包含imageFile
密钥。使用post["imageFile"]
访问字典时,结果是值(如果密钥存在)和nil
(如果密钥不存在)。您可以使用
if let imageFile = post["imageFile"],
let imageText = post["imageText"] {
self.imageFiles.append(imageFile as! PFFile)
self.imageText.append(imageText as! String)
} else {
print("imageFile and/or imageText missing from \(post)")
}