下面的代码应该获得当前位置.但是会产生上述错误.函数didUpdateLocations永远不会被调用.
在设备(iPhone 5s)iOS 9.1上运行此功能.Info.plist具有所需的设备功能和隐私 - 配置位置使用说明,如附图所示.请帮忙!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.requestLocation()
}
func locationManager(manager: CLLocationManager,
didFailWithError error: NSError)
print(error.description)
}
func locationManager(manager: CLLocationManager, didUpdateLocations
locations: [CLLocation]) {
print(“got location”)
}
Run Code Online (Sandbox Code Playgroud)
对于以下代码
var address = new Address();
address.street = 'N 34th';
address.city = 'Seattle';
var serialization = new Serialization()
..addRuleFor(address);
String output = serialization.write(address);
Run Code Online (Sandbox Code Playgroud)
我如何获得这样的json输出:
address: {'street':'N 34th', 'city':'Seattle'}
Run Code Online (Sandbox Code Playgroud)
上述代码生成的输出如下:
{"roots":[{"__Ref":true,"rule":3,"object":0}],"data":[[],[],[],[["Seattle","N 34th"]]],"rules":"{\"roots\":[{\"__Ref\":true,\"rule\":1,\"object\":0}],\"data\":[[],[[{\"__Ref\":true,\"rule\":4,\"object\":0},{\"__Ref\":true,\"rule\":3,\"object\":0},{\"__Ref\":true,\"rule\":5,\"object\":0},{\"__Ref\":true,\"rule\":6,\"object\":0}]],[[],[],[\"city\",\"street\"]],[[]],[[]],[[]],[[{\"__Ref\":true,\"rule\":2,\"object\":0},{\"__Ref\":true,\"rule\":2,\"object\":1},\"\",{\"__Ref\":true,\"rule\":2,\"object\":2},{\"__Ref\":true,\"rule\":7,\"object\":0}]],[\"Address\"]],\"rules\":null}"}
Run Code Online (Sandbox Code Playgroud) 我定义了数据类,配置了 gson 并创建了路由来处理发布请求,如下所示:
data class PurchaseOrder(val buyer: String, val seller: String,
val poNumber: String, val date: String,
val vendorReference: String)
install(ContentNegotiation) {
gson {
setDateFormat(DateFormat.LONG)
setPrettyPrinting()
}
post("/purchaseOrder"){
val po = call.receive<PurchaseOrder>()
println("purchase order: ${po.toString()}")
call.respondText("post received", contentType =
ContentType.Text.Plain)
Run Code Online (Sandbox Code Playgroud)
以下 JSON 在 POST 请求中发送
{
"PurchaseOrder" : {
"buyer": "buyer a",
"seller": "seller A",
"poNumber": "PO1234",
"date": "27-Jun-2018",
"vendorReference": "Ref1234"
}
}
Run Code Online (Sandbox Code Playgroud)
输出显示所有空值。
purchase order: PurchaseOrder(buyer=null, seller=null, poNumber=null,
date=null, vendorReference=null)
Run Code Online (Sandbox Code Playgroud)
从 call.request.receiveChannel() 读取数据确实显示了正确的 JSON。所以我正在接收数据,但 call.receive() 似乎没有产生预期的结果。
手动获取 JSON 并尝试按如下方式创建 …
我将my-app作为index.html文件中的主要应用程序组件,并使用model.dart作为其模型,这是我的应用程序模型.
my-app将my-component作为其内容.当用户与my-component交互时,我需要更新model.dart中的值.
<my-app>
<my-component></my-component>
</my-app>
Run Code Online (Sandbox Code Playgroud)
我认为一种方法是访问my-component dart文件中的my-app并使用其model属性访问model.dart.
这是访问应用程序模型的正确方法吗?另外如何从my-component中获取my-app?
我正在尝试使用Marshal函数从Go结构创建JSON.创建的JSON不包含Person结构.
我错过了什么?
http://play.golang.org/p/ASVYwDM7Fz
type Person struct {
fn string
ln string
}
type ColorGroup struct {
ID int
Name string
Colors []string
P Person
}
per := Person{
fn: "John",
ln: "Doe",
}
group := ColorGroup{
ID: 1,
Name: "Reds",
Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
P: per,
}
b, err := json.Marshal(group)
if err != nil {
fmt.Println("error:", err)
}
os.Stdout.Write(b)
Run Code Online (Sandbox Code Playgroud)
生成的输出如下:
{"ID":1,"Name":"Reds","Colors":["Crimson","Red","Ruby","Maroon"],"P":{}}
Run Code Online (Sandbox Code Playgroud)
我没有在输出中看到Person.
http://golang.org/pkg/encoding/json/#Marshal
我已经定义了login元素如下:
<polymer-element name="my-login" extends="form">
<template> ...</template>
Run Code Online (Sandbox Code Playgroud)
和飞镖课如下:
@CustomTag('my-login')
class MyLogin extends PolymerElement { .... }
Run Code Online (Sandbox Code Playgroud)
在主应用程序组件中,我尝试按如下方式创建my-login:
MyLogin p = new Element.tag("my-login", "FormElement");
Run Code Online (Sandbox Code Playgroud)
这会产生异常:
例外:类型'HtmlElement'不是'p'类型'MyLogin'的子类型.
如果从polymer-element声明中删除"extends = form",则代码有效:
<polymer-element name="my-login">
Run Code Online (Sandbox Code Playgroud)
并创建如下:
MyLogin p = new Element.tag("my-login");
Run Code Online (Sandbox Code Playgroud)
如何动态创建扩展其他HTML元素的自定义元素?
我试图从Dart webComponent中的表单中获取数据.定义了以下LoginComponent.单击提交按钮时不会调用doLogin函数.尝试在提交按钮上放置点击处理程序,但这也不起作用.
<html><body>
<element name="x-login" constructor="LoginComponent" extends="div">
<template >
<form id='loginForm' on-submit='doLogin()'>
<div>
<h1>Login :</h1>
<label for="loginName">Login name</label>
<input type="text" required="required" data-bind="value:loginId" />
<label>Password</label>
<input type="password" required="required" data-bind="value:pwd" />
<input type='submit' value="Login" />
<input type='button' data-action="click:doCancel" value="Cancel" />
<span>{{errorMessage}}</span></div>
</div>
</form>
</template>
<script type="application/dart">
import 'package:web_components/web_components.dart';
import 'ouremr.dart';
import 'dart:html';
class LoginComponent extends WebComponent {
String errorMessage="";
String loginId='';
String pwd='';
}
void doLogin(e) {
print("in do login");
e.preventDefault();
print(loginId);
print(pwd);
}
void doCancel(e) {
e.preventDefault();
errorMessage=' ';
style.display='none';
} …Run Code Online (Sandbox Code Playgroud) 我的项目中有 build.properties 文件,其中包含以下行:
sbt.version=1.2.8
Run Code Online (Sandbox Code Playgroud)
build.properties 文件与 build.sbt 文件位于同一文件夹中。
但是当我输入命令“sbt about”时,它报告1.0.3。以下是该命令的实际输出:
/Users/kale> sbt about
[info] Loading settings from idea.sbt ...
[info] Loading global plugins from /Users/kale/.sbt/1.0/plugins
[info] Loading settings from plugins.sbt ...
[info] Loading project definition from
/Users/kale/workspace/gr8Project/myapp/project
[info] Loading settings from build.sbt ...
[info] Set current project to myapp (in build
file:/Users/kale/workspace/gr8Project/myapp/)
[info] This is sbt 1.0.3
[info] The current project is
{file:/Users/kale/workspace/gr8Project/myapp/}myapp 0.1-SNAPSHOT
[info] The current project is built against Scala 2.12.8
[info] Available Plugins: sbt.plugins.IvyPlugin,
sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin,
sbt.plugins.JUnitXmlReportPlugin, …Run Code Online (Sandbox Code Playgroud) 下面的示例来自Akka的Hello World项目,可从此处给出的说明下载。
示例代码在AkkaQuickstart.scala文件中。Greeter和Printer类以及具有相同名称的对象都在com.example包下的同一文件中。
在Greeter类中,有两个import语句:
import Greeter._
import Printer._
Run Code Online (Sandbox Code Playgroud)
当所有这些对象都定义在同一包中的同一文件中时,为什么需要在Greeter类中导入Greeter和Printer?它们是必需的,因为如果删除了这些导入,则代码将无法编译。
此处有关导入的Scala文档规定如下:
“导入子句用于访问其他程序包中的成员(类,特征,函数等)。不需要访问子句来访问同一程序包的成员。” 但是在下面的代码中,即使所有类和对象都在同一包中,也需要导入。为什么需要导入?
同样,对于Printer类,有以下导入语句:
import Printer._
Run Code Online (Sandbox Code Playgroud)
对此主题的任何指导将不胜感激。
完整的示例代码如下:
//#full-example
package com.example
import akka.actor.{ Actor, ActorLogging, ActorRef, ActorSystem, Props }
//#greeter-companion
//#greeter-messages
object Greeter {
//#greeter-messages
def props(message: String, printerActor: ActorRef): Props = Props(new
Greeter(message, printerActor))
//#greeter-messages
final case class WhoToGreet(who: String)
case object Greet
}
//#greeter-messages
//#greeter-companion
//#greeter-actor
class Greeter(message: String, printerActor: ActorRef) extends Actor {
import Greeter._ //*why is import required here?*
import Printer._ //*why is import …Run Code Online (Sandbox Code Playgroud)