小编Aar*_*ron的帖子

使用后台线程中的数据执行回调后,JavacriptCore WebKit EXC_BAD_ACCESS崩溃

我目前正在尝试在JavascriptCore接口的JavascriptCore实现中调试崩溃,以便本机代码代表WebView中的javascript代码执行一些工作.

崩溃有时会在启动应用程序后很快发生,有时可能需要几分钟才能执行数百次对本机代码的调用.

这些是每次崩溃回溯的前两行:

(lldb) thread backtrace
* thread #1: tid = 0x37960c, 0x00007fff8de6ecca JavaScriptCore`sanitizeStackForVMImpl + 15, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x700001a2c000)
    frame #0: 0x00007fff8de6ecca JavaScriptCore`sanitizeStackForVMImpl + 15
Run Code Online (Sandbox Code Playgroud)

这是我的视图控制器的简化版本:

class MyViewController: NSViewController, WebFrameLoadDelegate {

    let worker = Worker() 

    // other setup code...

    func webView(webView: WebView!, didCreateJavaScriptContext context: JSContext!, forFrame frame: WebFrame!) {
        context.setObject(worker, forKeyedSubscript: "ClientWorker")
    }
}
Run Code Online (Sandbox Code Playgroud)

JSExport协议本身,以及执行代码的实现工作.为了测试,我删除了实际的工作,只返回一个带有虚拟数据的字典,崩溃仍然发生.

@objc protocol WorkerJSExports: JSExport {
    func doWork(params: [String:AnyObject], callback: JSValue)
}

@objc class Worker: NSObject, WorkerJSExports {

    func doWork(params: …
Run Code Online (Sandbox Code Playgroud)

cocoa webkit grand-central-dispatch javascriptcore swift

8
推荐指数
0
解决办法
663
查看次数

Google App Engine数据存储区 - 测试查询失败

我目前正在尝试测试一段代码,该代码在放入新实体之前在数据存储区上运行查询,以确保不会创建重复项.我写的代码在应用程序的上下文中工作正常,但我为这些方法编写的测试失败了.似乎我无法通过测试包的上下文中的查询访问放入数据存储区的数据.

一种可能性在于从输出goapp test内容如下:Applying all pending transactions and saving the datastore.在调用get和put方法之后打印出这一行(我用log语句验证了这一点).

我尝试关闭上下文并为不同的操作创建一个新的上下文,但不幸的是,这也没有帮助.下面是一个简单的测试用例,它放入一个对象,然后在其上运行查询.任何帮助,将不胜感激.

type Entity struct {
    Value string
}

func TestEntityQuery(t *testing.T) {
    c, err := aetest.NewContext(nil)
    if err != nil {
        t.Fatal(err)
    }
    defer c.Close()

    key := datastore.NewIncompleteKey(c, "Entity", nil)
    key, err = datastore.Put(c, key, &Entity{Value: "test"})
    if err != nil {
        t.Fatal(err)
    }

    q := datastore.NewQuery("Entity").Filter("Value =", "test")
    var entities []Entity
    keys, err := q.GetAll(c, &entities)
    if err != nil {
        t.Fatal(err)
    }
    if len(keys) …
Run Code Online (Sandbox Code Playgroud)

google-app-engine unit-testing go google-cloud-datastore

4
推荐指数
2
解决办法
690
查看次数

Capistrano 3部署:由于缺少主要迁移而未执行迁移

我有capistrano设置将rails应用程序部署到远程服务器.在部署代码时一切都运行良好,但即使我capistrano-rails安装了gem,也没有迁移数据库.当我在服务器上手动迁移迁移时,迁移会起作用,但让它们自动运行会更好

为了弄清楚出了什么问题,我进入了capistrano-rails源代码,并将该deploy:migrate方法直接复制到我的deploy.rb文件中.我添加了一堆打印行,发现当它进入方法时,它没有返回任何东西,因为行:on primary fetch(:migration_role)返回一个空数组.

Capistrano的文档是指被定义的主怎么说,首批上市的作用是默认的主,如果没有指定.

这是capistrano-rails我插入到deploy.rb文件中的源代码,我唯一的修改是两puts行.

namespace :deploy do
  desc 'Runs rake db:migrate if migrations are set'
  task :migrate => [:set_rails_env] do
    puts "on primary fetch(:migration_role) ==> #{on primary fetch(:migration_role)}"
    on primary fetch(:migration_role) do
      puts "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
      conditionally_migrate = fetch(:conditionally_migrate)
      info '[deploy:migrate] Checking changes in /db/migrate' if conditionally_migrate
      if conditionally_migrate && test("diff -q #{release_path}/db/migrate #{current_path}/db/migrate")
        info '[deploy:migrate] Skip `deploy:migrate` (nothing changed in db/migrate)'
      else
        info '[deploy:migrate] Run …
Run Code Online (Sandbox Code Playgroud)

migration rake capistrano ruby-on-rails capistrano3

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

在新 BigQuery 标准 SQL 的数组中使用结构

我正在尝试使用新的标准 SQL 在 Google BigQuery 表中的结构数组中查找具有重复字段的行。表中的数据(简化)其中每一行看起来有点像这样:

{
  "Session": "abc123",
  "Information" [
    {
      "Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
    },
    {
      "Identifier": "1c62813f-7ec4-4968-b18b-d1eb8f4d9d26"
    },
    {
      "Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的最终目标是显示Information具有重复Identifier值的实体的行。但是,我尝试的大多数查询都会收到以下形式的错误消息:

Cannot access field Identifier on a value with type ARRAY<STRUCT<Identifier STRING>>
Run Code Online (Sandbox Code Playgroud)

有没有办法用的数据里面工作STRUCT中的ARRAY


这是我第一次尝试查询:

SELECT
  Session,
  Information
FROM
  `events.myevents`
WHERE
  COUNT(DISTINCT Information.Identifier) != ARRAY_LENGTH(Information.Identifier)
LIMIT
  1000
Run Code Online (Sandbox Code Playgroud)

另一个使用子查询:

SELECT
  Session,
  Information
FROM (
  SELECT
    Session,
    Information,
    COUNT(DISTINCT Information.Identifier) AS info_count_distinct,
    ARRAY_LENGTH(Information) AS info_count
  FROM
    `events.myevents`
  WHERE
    COUNT(DISTINCT Information.Identifier) …
Run Code Online (Sandbox Code Playgroud)

sql google-bigquery

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

在 Google Bigquery 中,NULL 字段占用空间吗?

我正在设计一个要放入 Google Bigquery 的事件模式。当前的设计使得许多字段通常为NULL,例如来自移动应用程序的事件不会有URL 或浏览器信息,而来自网站的事件不会有硬件规格。此外,当前模式中的许多信息都是相当静态的,不需要包含在每个事件中。

如果事件中的字段保留为 NULL,它们是否仍会占用表中的空间?我想知道是否以某种方式结束这些事件会更好。是否有存储重复信息的最佳实践?

schema database-schema google-bigquery

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