我一直在考虑阅读和阅读,但可以找到绝对权威的答案.
我有几个深层数据结构,由包含ArrayLists,Strings和原始值的对象组成.我可以保证这些结构中的数据不会改变(没有线程会对列表进行结构更改,更改引用,更改基元).
我想知道在这些结构中读取数据是否是线程安全的; 即从对象递归读取变量是否安全,迭代ArrayLists等以从多个线程中的结构中提取信息而不同步?
这是我在AppDelegate类中的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = 1000; // 1 Km
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
[locationManager startUpdatingLocation];
}
Run Code Online (Sandbox Code Playgroud)
这是我在AppDelegate类中的委托方法
//This is the delegate method for CoreLocation
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
//printf("AppDelegate latitude %+.6f, longitude %+.6f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude);
}
Run Code Online (Sandbox Code Playgroud)
它工作在3.0,3.1,3.1.3,但它不适用于4.0模拟器和设备.
是什么原因 ?
我创建了几个Gmarkers(来自JQuery加载的JSON数据"load"函数),在所有这些上我添加了一个事件监听器来打开我之前在标记上创建的infowindow对象,然后我将它们全部添加到地图中.
问题是infowindow总是在同一个标记上打开.我之前都有这个工作,我看不出问题出在哪里......变量的范围?某处愚蠢的错误?
我上传了一个示例,这是javascript文件的快捷方式
代码 :
var map;
var infowindow;
$(document).ready(function() {
var myLatlng = new google.maps.LatLng(47.15984,2.329102);
var myOptions = {
zoom: 6,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID,
scrollwheel: false
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
infowindow = new google.maps.InfoWindow({content:'<p>Test</p>'});
$.getJSON("data.json", function(data) {
var markers = [];
for (var i = data.length - 1; i >= 0; i--){
var latLng = new google.maps.LatLng(data[i].lat, data[i].lng);
var marker = new google.maps.Marker({position: latLng});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
markers.push(marker); …Run Code Online (Sandbox Code Playgroud) javascript jquery google-maps infowindow google-maps-markers
在iOS 5上开发新功能,特别是iOS 5上新的OpenGL相关功能,所以如果我的任何问题都是如此基本,我会道歉.
我正在处理的应用程序旨在接收相机帧并通过OpenGL ES在屏幕上显示它们(图形人员将接管这个并添加我知道的实际OpenGL绘图).该应用程序是开发XCode4,目标是运行iOS 5的iPhone4.目前,我使用ARC和GLKit功能,除了在将图像加载为纹理时的内存泄漏,所有工作都正常.该应用程序很快就会收到"内存警告".
具体来说,我想问一下如何释放分配的纹理
@property(retain) GLKTextureInfo *texture;
-(void)setTextureCGImage:(CGImageRef)image
{
NSError *error;
self.texture = [GLKTextureLoader textureWithCGImage:image options:nil error:&error];
if (error)
{
NSLog(@"Error loading texture from image: %@",error);
}
}
Run Code Online (Sandbox Code Playgroud)
这image是一个由相机框架构建的石英图像(来自苹果的示例代码).我知道问题不在代码的那一部分,因为如果我禁用分配,应用程序不会收到警告.
我正在为正在处理的应用程序定制Django-admin.到目前为止定制工作文件,添加了一些视图.但我想知道如何更改change_list显示中的记录链接以显示信息页而不是更改表单?!
在这篇博文中:http://www.theotherblog.com/Articles/2009/06/02/ extend-the-django-admin-interface/Tom说:
"您可以通过定义函数然后添加my_func.allow_tags = True来在列表视图中添加图像或链接"
我不太明白!!
现在我有配置文件功能,当我点击记录列表中的成员我可以显示它(或添加另一个名为 - 配置文件 - 的按钮),还有如何为每个成员添加链接(编辑:重定向我编辑)该成员的表格).
我怎么能做到这一点?!
如果iOS SDK没有这方面的功能,那么如果我有一个基本(静态)网站,并且在该网站的某个地方我手动设置一段数据,每次在应用商店中指定我的应用程序的最新版本,该怎么办?我发布了更新?如何让我的应用程序在网站上查询该版本数据并根据iOS设备上运行的版本进行检查?
我想实现一个locationListener,它将根据可用性在网络和GPS提供商之间切换.
例如,如果未启用GPS,我希望它使用网络,但只要GPS打开,我就希望它停止从网络收听位置更新并开始从GPS收听.
同样,我希望它在GPS关闭后立即开始收听来自网络的更新.
那可能吗?
Subquestion
GPS在提供定位方面是否与网络一样快?
我正在尝试编写一些谷歌地图功能和玩javascript闭包,目的是尝试组织和更好地构建我的代码.
我有以下代码:
var gmapFn ={
init : function(){
if (GBrowserIsCompatible()) {
this.mapObj = new GMap2($("#map_canvas"));
this.mapObj.setCenter(new google.maps.LatLng(51.512880,-0.134334),16);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我稍后在jquery doc中调用它:
$(document).ready(function() {
gmapFn.init();
})
Run Code Online (Sandbox Code Playgroud)
我已经设置了谷歌地图键,但我在main.js上收到错误:
未捕获异常:[Exception ..."组件返回失败代码:0x80004005(NS_ERROR_FAILURE)"nsresult:"0x80004005(NS_ERROR_FAILURE)"位置:"JS frame :: http://maps.gstatic.com/intl/en_ALL/mapfiles/ 193c/maps2.api/main.js :: ig :: line 170"data:no] QO()
这个错误似乎是在GBrowserIsCompatible()测试中抛出的,我认为这是由我使用这个闭包,有没有办法将它保持在一个闭包中并使init()工作?
我创建了一个自定义的OverlayItem类,这样我就可以拥有一种OverlayItem,其Drawable标记会根据我传入其中的一些数据的状态来设置自己.
我第一次尝试使用setMarkerOverlayItem类中的方法尝试完成此操作.一旦这不起作用,我尝试覆盖该getMarker方法并让它返回适当的标记来表示数据.
这两个尝试都没有在地图上绘制任何内容......但是如果它们被注释掉,则标记绘制得很好(除了它们当然使用默认标记,这不是我想要的).
这是我的自定义OverlayItem类的代码(我尝试过的注释掉的方法,但它们没有用):
private class MyOverlayItem extends OverlayItem {
private Context mContext;
private MyData mData;
public MyOverlayItem(GeoPoint point, MyData data, Context context) {
super(point, data.getWhat(), data.getWhere());
this.mContext = context;
this.mData = data;
/*if(data.getTemp() > 200)
this.setMarker(res.getDrawable(R.drawable.icon_data_hot_l));
else if(data.getTemp() > 100)
this.setMarker(res.getDrawable(R.drawable.icon_data_neutral_l));
else
this.setMarker(res.getDrawable(R.drawable.icon_data_frozen_l));*/
}
/*@Override
public Drawable getMarker(int stateBitset) {
Resources res = this.mContext.getResources();
if(this.mData.getTemp() > 200)
return res.getDrawable(R.drawable.icon_data_hot_l);
else if(this.mData.getTemp() > 100)
return res.getDrawable(R.drawable.icon_data_neutral_l);
return res.getDrawable(R.drawable.icon_data_frozen_l);
}*/
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做我正在尝试做的事情......或者我是否需要创建一个与我的数据的每个状态相对应的唯一OverlayItem类?(EW).
google-maps ×3
iphone ×3
android ×2
ios ×2
javascript ×2
admin ×1
arraylist ×1
cllocation ×1
django ×1
django-admin ×1
drawable ×1
dsl ×1
geolocation ×1
glkit ×1
gps ×1
infowindow ×1
ios5 ×1
ipad ×1
java ×1
jquery ×1
location ×1
overlay ×1
python ×1
t4 ×1
vsx ×1