小编Dav*_*ill的帖子

gdb中的nil未定义为0x0?

我正在使用gdb(Xcode内部)单步执行一些简单的Objective-C代码并注意到一些奇怪的东西.这是相关的片段:

NSString *s = nil;
int x = (s == nil);
Run Code Online (Sandbox Code Playgroud)

正如我所料,x这两行之后的价值是1.奇怪的是,如果我在gdb中尝试类似的东西,它不会起作用:

(gdb) print ret
$1 = (NSString *) 0x0
(gdb) print (int)(ret==nil)
$2 = 0
(gdb) print nil
$3 = {<text variable, no debug info>} 0x167d18 <nil>
Run Code Online (Sandbox Code Playgroud)

似乎gdb对于nil有一些定义,而不是Objective-C使用的(0x0).有人能解释一下这里发生了什么吗?

null gdb objective-c

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

Google App Engine数据存储区中不精确查询的优秀模式是什么?

Google App Engine数据存储区查询语言(gql)不提供"LIKE"等不精确的运算符,甚至不区分大小写.通过存储字段的小写版本,可以解决区分大小写的问题.但是如果我想搜索一个人但我不确定这个名字的拼写怎么办?是否有可接受的处理此方案的模式?

google-app-engine gql google-cloud-datastore

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

App Engine数据存储区IN操作员 - 如何使用?

阅读:http://code.google.com/appengine/docs/python/datastore/gqlreference.html

我想用:

:= IN

但我不确定如何使它工作.我们假设如下

class User(db.Model):
    name = db.StringProperty()

class UniqueListOfSavedItems(db.Model):
    str = db.StringPropery()
    datesaved = db.DateTimeProperty()

class UserListOfSavedItems(db.Model):
    name = db.ReferenceProperty(User, collection='user')
    str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
Run Code Online (Sandbox Code Playgroud)

如何进行查询以获取用户保存的项目列表?显然我可以这样做:

q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
Run Code Online (Sandbox Code Playgroud)

但这给我一个关键列表.我现在想要获取该列表并将其放入查询中以从UniqueListOfSavedItems中获取str字段.我以为我能做到:

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
Run Code Online (Sandbox Code Playgroud)

但是有些事情不对......任何想法?是(我在我的日常工作,所以现在不能测试):

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
Run Code Online (Sandbox Code Playgroud)

旁注:要搜索的是一个非常难以解决的问题,因为我真正关心的是"IN"运算符.

python google-app-engine gql google-cloud-datastore

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

appengine:缓存的引用属性?

如何在Google App Engine中缓存参考属性?

例如,假设我有以下模型:

class Many(db.Model):
    few = db.ReferenceProperty(Few) 

class Few(db.Model):
    year = db.IntegerProperty()
Run Code Online (Sandbox Code Playgroud)

然后我创造了许多Many只指向一个的东西Few:

one_few = Few.get_or_insert(year=2009)
Many.get_or_insert(few=one_few)
Many.get_or_insert(few=one_few)
Many.get_or_insert(few=one_few)
Many.get_or_insert(few=one_few)
Many.get_or_insert(few=one_few)
Many.get_or_insert(few=one_few)
Run Code Online (Sandbox Code Playgroud)

现在,如果我想迭代所有Many的,读取它们的few价值,我会这样做:

for many in Many.all().fetch(1000):
  print "%s" % many.few.year
Run Code Online (Sandbox Code Playgroud)

问题是:

  • 每次访问都会many.few触发数据库查找吗?
  • 如果是,是否可以在某处缓存,因为每次只有一次查找应该足以带来同一个实体?

正如一篇评论中所述:我知道memcache,但是当我通过引用调用另一个实体时,我不确定如何"注入"它.

在任何情况下,memcache都没用,因为我需要在执行中缓存,而不是在它们之间.使用memcache无助于优化此调用.

python database performance google-app-engine google-cloud-datastore

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

Google应用引擎教程问题 - 新的数据存储模型

所以我刚刚完成了谷歌应用程序引擎问候教程.到目前为止一切顺利.然后我决定尝试添加一个新的数据存储模型,然后在现有的处理程序中设置它.我添加了一个名为"content2"的第二个内容字段,然后尝试在处理程序Guestbook()中设置它,但它保持不变.我敢肯定这将是最愚蠢的错误,但我很难过.有任何想法吗?

main.py

import cgi

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
import os
from google.appengine.ext.webapp import template

class Greeting(db.Model):
  author = db.UserProperty()
  content = db.StringProperty(multiline=True)
  date = db.DateTimeProperty(auto_now_add=True)
  content2 = db.StringProperty(multiline=True)


class MainPage(webapp.RequestHandler):
  def get(self):
    greetings_query = Greeting.all().order('-date')
    greetings = greetings_query.fetch(1000)

    if users.get_current_user():
      url = users.create_logout_url(self.request.uri)
      url_linktext = 'Logout'
    else:
      url = users.create_login_url(self.request.uri)
      url_linktext = 'Login'

    template_values = {
      'greetings': greetings,
      'url': url,
      'url_linktext': url_linktext,
      }


    path = os.path.join(os.path.dirname(__file__), 'index.html')
    self.response.out.write(template.render(path, …
Run Code Online (Sandbox Code Playgroud)

django google-app-engine django-models google-cloud-datastore

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

具有kind和key的数据存储区实体具有名为的null属性

向对象添加布尔属性后,从数据存储区中提取该对象会导致错误:

Datastore entity with kind <Class> and key <Class:ID> has a 
  null property named <attribute>
Run Code Online (Sandbox Code Playgroud)

java google-app-engine google-cloud-datastore

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

那里有一个全面的Google App Engine应用程序列表吗?

我正在考虑将Google App Engine用于小型项目,但在我首先进入并开始编写我的应用程序(这是相当简单和常见的东西)之前,我想查看已经完成的工作.但是我找不到任何列出那里已有的应用程序的地方.谁知道这样的地方?

google-app-engine

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

Google App Engine上有没有关于java的书?

我想开始使用Google App Engine for java.但我不知道,从哪里开始.
google [ http://code.google.com/appengine/docs/java/overview.html ] 提供的教程是否足够?
另外,请提及GAE [java]上的一些好书,以便我可以从rapidshare或torrent下载那些购买这些书并开始阅读它们.

java google-app-engine

3
推荐指数
2
解决办法
1721
查看次数

gae java sdk/eclipse插件的localhost开发数据存储在哪里?

我在eclipse中测试我的gae java jdo例程.

实际问题是,如何清除/清除localhost开发数据存储区,以便我可以从一个处理数据存储区开始新的测试周期?

地址信息 - 对于那些不知道的人:GAE =谷歌应用程序引擎,谷歌的Java托管解决方案和python应用程序.

java google-app-engine google-cloud-datastore

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

如何在Google应用引擎数据库中过滤具有空引用的行

我有一个Model UnitPattern,它引用了另一个Model UnitPatternSet

例如

class UnitPattern(db.Model):
    unit_pattern_set = db.ReferenceProperty(UnitPatternSet)
Run Code Online (Sandbox Code Playgroud)

在我的视图中我想显示所有UnitPatterns,其unit_pattern_set引用为None,但查询UnitPattern.all().filter("unit_pattern_set =",None)什么都不返回,虽然我总共有5个UnitPatterns,其中2个有'unit_pattern_set'设置,3没有

例如

print 'Total',UnitPattern.all().count()
print 'ref set',UnitPattern.all().filter("unit_pattern_set !=", None).count()
print 'ref not set',UnitPattern.all().filter("unit_pattern_set =", None).count()
Run Code Online (Sandbox Code Playgroud)

输出:

Total 5
ref set 2
ref not set 0
Run Code Online (Sandbox Code Playgroud)

查询2和3的总和不应该等于查询1吗?

原因似乎是我稍后添加了引用属性unit_pattern_set,并且之前存在这些UnitPattern对象,但是我如何过滤这些实体?

google-app-engine google-cloud-datastore

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