问题列表 - 第33963页

使用多个CLLocationManager实例是否存在任何性能损失

我的应用程序中至少有两个控制器当前使用自己的CLLocationManager实例.我很好奇但是如果使用多个实例实际上会给手机增加额外的负担 - 超出了不同实例的额外内存.

iPhone会多次ping GPS硬件,还是使用某种调度方式,以便硬件被抽象出来并转发给所有听众?我正要编写自己的抽象层来处理多个观察者,但想检查是否有任何知识表明它没有必要.

iphone core-location cllocationmanager

14
推荐指数
1
解决办法
3094
查看次数

如何在不返回对象的情况下检查数据存储区中是否存在密钥

我希望能够检查数据存储区中是否存在我的模型的key_name.我的代码是:

t=MyModel.get_by_key_name(c)
    if t==None:
        #key_name does not exist
Run Code Online (Sandbox Code Playgroud)

我不需要该对象,所以有没有办法(更快,成本更低的资源)检查对象是否存在而不返回它?我只知道关键名称,而不是关键.

python google-app-engine

8
推荐指数
1
解决办法
3335
查看次数

1
推荐指数
1
解决办法
1392
查看次数

应该总是在界面设计中返回指向类的指针?

我希望我能够返回一个虚拟基类的对象,这样我就不需要处理内存管理了(函数编程的想法也刺激了这种追求).这意味着我正在寻找以下内容:

class Car
{
  public:
     virtual int price() = 0 ;
     virtual string brand() = 0 ;
}

class Interface
{
  public:
     virtual Car giveMeACar() = 0 ;
     virtual vector<Car> listMeAllTheCars() = 0 ;
}
Run Code Online (Sandbox Code Playgroud)

但是,由于Car是一个抽象接口,因此甚至无法编译,并显示错误消息:

成员函数的抽象返回类型无效' virtual Car giveMeACar() = 0; 因为下面的虚拟函数是"内的纯Car": int price()
string brand();

那么,这是否意味着我不得不修改界面类似下面和管理者的记忆我自己(使用后删除实例) -排除使用智能指针的选择.

class Interface
{
  public:
     virtual Car* giveMeACar() = 0 ;
     virtual vector<Car*> listMeAllTheCars() = 0 ;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这是我在设计的界面,每一个东西(类)是抽象的唯一选择?

返回接口类的对象在Java中是完全有效的.在这个方面,C++看起来似乎有点笨拙且反直觉.不仅如此,我觉得C++是"指向对象编程语言的指针"而不是"对象编程语言",因为没有指针就无法获得对象编程的太多好处.

c++ oop

15
推荐指数
1
解决办法
6955
查看次数

Python,导入Python代码的字符串作为模块

在Python中,你可以做这样的事情来导入使用字符串文件名的模块,并指定其命名空间的本地命名空间的变量.

x = __import__(str)
Run Code Online (Sandbox Code Playgroud)

我想知道,如果有,将采取采取的,而不是用Python代码文件的路径Python代码串,并返回其命名空间为变量的相关功能.

例如,

str = "a = 5";
x = importstr(str)
print x.a
#output is 5
Run Code Online (Sandbox Code Playgroud)

我意识到我可以将字符串写入文件,然后使用__import__它,但我想跳过中间文件,如果可能的话.

这样做的原因是我在python中尝试元编程,这似乎是我正在做的一个很好的解决方案.

python metaprogramming

16
推荐指数
4
解决办法
7867
查看次数

缓存键导致错误"否定二进制补码的最小值无效".

这是我见过的最奇怪的错误之一.

我正在做一个非常简单的调用来从HttpRuntime缓存中返回值.电话是:

return HttpContext.Current.Cache[cacheKey];
Run Code Online (Sandbox Code Playgroud)

如果它返回null,那很好.我检查返回的值是否为null并相应地采取行动.我一直在使用这个电话.

最近,出于某种原因,当cacheKey设置为这个确切的值时:

"Topic_GridSelectAll:5,null,2010-08-31-20-00-00,Published,desc,5,1"
Run Code Online (Sandbox Code Playgroud)

抛出System.OverflowException:否定二进制补码数的最小值无效.

呼叫,相关代码或服务器没有任何变化.如果cacheKey的字符略有不同,那么它的工作原理非常好.例如,此cacheKey返回null而不抛出任何异常:

"Topic_GridSelectAll:5,null,2010-08-31-21-00-00,Published,desc,5,1"
Run Code Online (Sandbox Code Playgroud)

请注意,这两个字符串之间的唯一区别是时间字符:2010-08-31-20-00-00与2010-08-31-21-00-00.

为什么这会有什么不同呢?为什么现在这么久以后呢?

堆栈跟踪是:

[OverflowException: Negating the minimum value of a twos complement number is invalid.]
   System.Math.AbsHelper(Int32 value) +12753486
   System.Web.Caching.CacheMultiple.UpdateCache(CacheKey cacheKey, CacheEntry newEntry, Boolean replace, CacheItemRemovedReason removedReason, Object& valueOld) +142
   System.Web.Caching.CacheInternal.DoGet(Boolean isPublic, String key, CacheGetOptions getOptions) +122
   MyProject.Helpers.CacheHelper.GetData(String cacheDomain, String cacheKey) in ...
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改缓存调用以使用HttpRuntime.Cache(即.HttpRuntime.Cache[cacheKey]),但这没有任何区别.我知道它是相同的底层缓存提供者,但我想也许不同的调用会产生影响.没有骰子.

c# asp.net integer httpruntime.cache

19
推荐指数
1
解决办法
3473
查看次数

在引用父对象字段,属性或方法时,'base'和'this'之间有什么区别吗?

请考虑以下代码:

public class Vehicle
{
    public void StartEngine()
    {
        // Code here.
    }
}

public class CityBus : Vehicle
{
    public void MoveToLocation(Location location)
    {
        ////base.StartEngine();
        this.StartEngine();
        // Do other stuff to drive the bus to the new location.
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有任何区别this.StartEngine();base.StartEngine();不同之处在于在第二种情况下,StartEngine方法不能被移动到或重写CityBus类?是否有性能影响?

c# oop syntax optimization

6
推荐指数
2
解决办法
1368
查看次数

DOM错误 - ID'someAnchor'已在实体中定义,第X行

如果我尝试将HTML文档加载到PHP DOM中,我会遇到以下错误:

Error DOMDocument::loadHTML() [domdocument.loadhtml]: ID someAnchor already defined in Entity, line: 9
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么.这是一些将HTML字符串加载到DOM中的代码.

首先不包含锚标记,第二个包含锚标记.第二个文档产生错误.

希望您能够将其剪切并粘贴到脚本中并运行它以查看相同的输出:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);


$stringWithNoAnchor = <<<EOT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body >
<h1>Hello</h1>
</body>
</html>
EOT;

$stringWithAnchor = <<<EOT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body >
<h1>Hello</h1>
<a name="someAnchor" id="someAnchor"></a>
</body>
</html>
EOT;

class …
Run Code Online (Sandbox Code Playgroud)

php anchor dom

7
推荐指数
1
解决办法
1万
查看次数

无法在未在AsyncTask for ProgressDialog中调用Looper.prepare()的线程内创建处理程序

我不明白为什么我会收到这个错误.我正在使用AsyncTask在后台运行一些进程.

我有:

protected void onPreExecute() 
{
    connectionProgressDialog = new ProgressDialog(SetPreference.this);
    connectionProgressDialog.setCancelable(true);
    connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    connectionProgressDialog.setMessage("Connecting to site...");
    connectionProgressDialog.show();

    downloadSpinnerProgressDialog = new ProgressDialog(SetPreference.this);
    downloadSpinnerProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    downloadSpinnerProgressDialog.setMessage("Downloading wallpaper...");
}
Run Code Online (Sandbox Code Playgroud)

当我doInBackground()根据条件进入时我:

[...]    
connectionProgressDialog.dismiss();
downloadSpinnerProgressDialog.show();
[...]
Run Code Online (Sandbox Code Playgroud)

每当我尝试downloadSpinnerProgressDialog.show()我收到错误.

有什么想法吗?

java android runtime-error progressdialog looper

78
推荐指数
2
解决办法
10万
查看次数

MySQL在ORDER BY中获取行位置

使用以下MySQL表:

+-----------------------------+
+ id INT UNSIGNED             +
+ name VARCHAR(100)           +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

如何排序时,如何选择单个行及其在表中其他行中的位置name ASC.因此,如果表数据如下所示,则按名称排序时:

+-----------------------------+
+ id | name                   +
+-----------------------------+
+  5 | Alpha                  +
+  7 | Beta                   +
+  3 | Delta                  +
+ .....                       +
+  1 | Zed                    +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

如何选择Beta获取该行当前位置的行?我正在寻找的结果集是这样的:

+-----------------------------+
+ id | position | name        +
+-----------------------------+
+  7 |        2 | Beta        +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

我可以做一个简单的SELECT * FROM tbl ORDER BY name ASC然后枚举PHP中的行,但是为一行加载一个可能很大的结果集似乎很浪费.

mysql sql analytic-functions

77
推荐指数
4
解决办法
8万
查看次数