小编sdo*_*ble的帖子

locationManager didUpdateLocations在设备上触发两次,在模拟器上只触发一次

相同的代码,我假设设备实际上是因某种原因更新了位置两次,即使我只调用一次startUpdatingLocation()并在didUpdateLocations中运行一些stopUpdatingLocations()

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    manager.stopUpdatingLocation()
    let loc: CLLocation = locations[locations.count - 1]
    let id = 0
    let type = 0
    let number = 0

    createNewDataPoint(id, loc: loc, type: type, number: number)
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,createNewDataPoint被调用两次,创建2个新数据点.它只在模拟器中发生一次,所以我假设它与实际设备和GPS有关,因为模拟器伪造了它的位置.

startUpdatingLocation()只在我的代码中一次,在一个按钮上.基本上,你单击按钮,去go manager.startUpdatingLocations(),didUpdateLocations在模拟器上点击一次,在设备上点击两次(相同的坐标),它创建2个新的数据点.

提及任何相关内容的唯一其他代码是设置准确性,过滤器,授权请求以及前面提到的startUpdatingLocation().有什么我可以做的,以确保我没有创建两倍于必要的数据点?

cllocationmanager ios swift

12
推荐指数
3
解决办法
8345
查看次数

当我点击MapKit的引脚时,如何执行操作?ios9,swift 2

我已经创建了一个地图上有大量针脚的地图,然后点击一个针脚会弹出默认的"气泡",这就好了.

我真正想做的不是弹出泡泡而是调用不同的函数.我的所有搜索都导致人们想要创建具有不同视图的新自定义注释,这样,我只想调用一个函数,我不确定在哪里尝试调用它.我对ios开发很新,这看起来应该很简单,但我发现通常情况并非如此.

mapkit ios swift

7
推荐指数
3
解决办法
6600
查看次数

当我有一个双倍的时候,为什么我的结构会出现意想不到的大小?

public struct TestStruct
{
    public int first;
    public int second;
    public int third;
}
Run Code Online (Sandbox Code Playgroud)

Marshal.SizeOf返回12,这是我假设的,因为整数是4个字节.如果我要将第三个改为double而不是int,我会期望Marshal.SizeOf返回16.确实如此.但是如果我要添加一个双倍的第四个,Marshal.SizeOf返回24,当我期望20.我可以有10个整数并且最终每个int计为每个4字节.但是如果我在3个整数后添加一个双,那么大小不是我所期望的.

public struct TestStruct //SizeOf 12
{
    public int first;
    public int second;
    public int third;
}  

public struct TestStruct //SizeOf 16
{
    public int first;
    public int second;
    public double third;
}  

public struct TestStruct //SizeOf 24, but I feel like it should be 20
{
    public int first;
    public int second;
    public double third;
    public int fourth;
}
Run Code Online (Sandbox Code Playgroud)

我的想法在哪里让我误入歧途?

c# double struct

5
推荐指数
2
解决办法
145
查看次数

首先使用Python 3.4和Gtk3以编程方式将FileChooserDialog更改为列出目录?

我是用Gtk进行UI开发的新手,遇到了一些我没想到的东西.FileChooser会按名称自动排序,无论它是文件还是目录.我喜欢首先列出目录,人们习惯/期待它.

有什么方法可以让FileChooser以这种方式行事吗?

编辑:在大多数主要的可视文件管理器中,它是在文件之前列出目录的默认行为.这些链接显示了人们通常在文件管理器中看到的内容: konqueror,nautilus,thunar,windows,osx,这就是我用Gtk FileChooser看到的内容.我有没有办法让它看起来像默认情况下的其他文件管理器,使用代码?

EDIT2,我打开它的代码:

dialog=Gtk.FileChooserDialog("Select a file",self,
        Gtk.FileChooserAction.OPEN,(
            Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
            Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
response=dialog.run()
Run Code Online (Sandbox Code Playgroud)

python gtk

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

检查vue-router.beforeEach不限制对路由的访问

首先,我正在使用带有webpack,vue-router(在历史模式 - SPA站点中)的vuejs 2.0,以及在加载热模块的webpack dev服务器上运行的vuex.

我有大约10个路由映射到组件.网站工作得很好,但现在我正在添加一些基于令牌的身份验证.我正在使用router.beforeEach来执行令牌检查.如果令牌有效,它应该让它们通过.如果令牌无效,则应将其重定向到/ login页面.问题是它执行检查并在第一次限制它.但第二次尝试允许我转到页面并显示内容.每隔一个请求似乎正确处理路由并重定向到/ login.我的checkToken()函数总是返回false,用于测试目的.

码:

// Configure Router
const router = new Router({
    routes, //routes are configured elsewhere, they work fine so not needed
    mode: 'history'
})

router.beforeEach((to, from, next) => {
    if(to.path != '/login') {
        if(checkToken()) { 
            logger('There is a token, resume. (' + to.path + ')');
            next();
        } else {
            logger('There is no token, redirect to login. (' + to.path + ')');
            next('login');
            // next('/login');
            // router.push('login');
        }
    } else …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router vuejs2

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

Node.js:无法使用socket.io与express一起工作,在脚本文件上获取404s

我正在尝试使用express来提供与socket.io通信的静态页面.问题发生后我一直遇到问题.我做了很多事情,并且用Google搜索了很多次,以至于我无法相信我没有找到我的具体问题的答案.我一直跑到显示服务器的地方,或者向客户展示,而不是与客户沟通的其他地方.或者两者兼而有,但不是快递.当我把express放到混合中时,我开始得到404s并且他们移动我的socket.io客户端脚本并且仍然无法让它工作.这就是我现在所处的位置,尽管这是关于我的第20个配置.

服务器:

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);

app.configure(function () {
    app.use(express.static('html'));
});

app.listen(8080);

io.sockets.on('connection', function (socket) {
    console.log('A socket connected!');
}); 
Run Code Online (Sandbox Code Playgroud)

客户:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');
  socket.send('testing');
</script>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将src更改为/html/socket.io.js(并将所有必需的文件从dist目录复制到/ html),尝试在html目录中创建一个脚本目录,尝试链接到socket.io的cdn,然后我继续得到404s.我知道这是一件愚蠢而简单的事情,我搞砸了,我无法理解我的生活.谢谢!

编辑:我现在要做的就是提供index.html页面,并在看到连接时打印到服务器控制台.

node.js express socket.io

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

尝试使用C#和WPF在文本框中调整TextBox +字体大小,只能执行其中一个

当调整窗口大小时,我正在尝试调整文本框和文本框内的文本的大小.我似乎能够做一个或另一个,但不能同时做两个.

调整文本框的大小有效,但我无法调整文本内部的大小: 原始尺寸 调整

以上示例的代码:

    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

或者调整字体的大小,但是我无法使文本框填充我正在使用的视图框: 原版的 调整

以上示例的代码:

    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <Viewbox Stretch="Uniform">
            <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
        </Viewbox>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

使用Stretch ="Fill"(在正确的轨道上,但我宁愿保持统一,UniformToFill做一些奇怪的事情,我甚至看不到发生了什么) 填

c# wpf viewbox

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