小编Bli*_*nja的帖子

UITapGestureRecognizer发件人是手势,而不是ui对象

我有一个叫做的按钮,我给它一个UIGestureRecognizer,这样只有长按按钮才会运行IBAction.您可以通过向按钮自身添加UILongPressGestureRecognizer来完成此操作.然后你控制将手势识别器拖动到这样的函数:

 @IBAction func handleGesture(sender: UIGestureRecognizer) {
    if sender.state == UIGestureRecognizerState.Began
    {
        let labelTap1=UITapGestureRecognizer(target: self, action: "labelTapped:")
        let alertController = UIAlertController(title: "**I want this to be the title of the button**", message:
            "This is the description of the function you pressed", preferredStyle: UIAlertControllerStyle.Alert)
        alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default,handler: nil))

        self.presentViewController(alertController, animated: true, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,UIAlertController出现了,我希望标题显示当前标题的按钮.如果此函数的发件人是按钮,我可以使用sender.currentTitle调用它.当函数的发送者是手势时,如何获得与手势相关联的按钮的标题.

我在目标C中看过这样的帖子,但在Swift上没有.当你长按按钮本身时,这就是项目获取按钮描述的全部内容.如果有人有任何想法如何用我迄今为止所做的完成,或者有不同的方法,请告诉我.

谢谢!

xcode uigesturerecognizer ios swift

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

secondsFromGMT在设备和模拟器上返回不同的值

我正在开发一个时间应用程序,显示不同时区的时间.为此我使用标准时间haDate(UTC tz).

因为displayDate我正在使用系统时区api.时区是America/Santiago(UTC-3:00).

NSTimeZone *tz=[NSTimeZone timeZoneWithName:_timeZone];
_displayDate=[_haDate dateByAddingTimeInterval:tz.secondsFromGMT];
Run Code Online (Sandbox Code Playgroud)

"haDate"代码 -

NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
formatter.timeZone=[NSTimeZone timeZoneWithName:@"UTC"];
NSString *utcTimeCurrent=[dict objectForKey:@"utctime"];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
_haDate=[formatter dateFromString:utcTimeCurrent];
Run Code Online (Sandbox Code Playgroud)

问题是当我在模拟器tz.secondsFromGMT返回时运行此代码-10800但在设备上它返回-14400,这少了1小时.

设备和模拟器使用相同的时区Asia/Kolkata(UTC + 5:30 ).我知道America/Santiago使用DST,但为什么它给我不同的秒数,即使两者(模拟器和设备)都在同一时区.

有什么问题,我该如何解决?

注意

要修复DST问题,我正在使用此代码.但它总是转到两个设备上的else部分.(BTW低于代码不是必需的,因为tz.secondsFromGMT在DST调整后总是返回秒数.)

NSTimeZone *tz=[NSTimeZone timeZoneWithName:_timeZone];
if (tz.isDaylightSavingTime)
{
    _displayDate=[_haDate dateByAddingTimeInterval:tz.secondsFromGMT+tz.daylightSavingTimeOffset];
}
else
{
    _displayDate=[_haDate dateByAddingTimeInterval:tz.secondsFromGMT];
}
Run Code Online (Sandbox Code Playgroud)

当我记录tz -

在模拟器上

tz America/Santiago (GMT-3) offset -10800

在设备上

tz America/Santiago (GMT-4) offset -14400

所以它没有使用DST.

笔记2 …

timezone cocoa-touch objective-c nsdate ios

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

什么是"终止以响应背板的终止"?

我借助滑块在视图上使用一段代码投影.滑块设置为-15到15.此代码在slider.value正面时效果很棒,但如果负面则应用停止工作.崩溃日志很奇怪Terminating in response to backboardd's termination.

我第一次得到这个日志.那是什么?

这是我的代码.

    childViews.layer.shadowColor = [[UIColor blackColor] CGColor];
    childViews.layer.shadowOffset = CGSizeMake(slide,slide);
    childViews.layer.shadowOpacity = 1.0;
    childViews.layer.shadowRadius=10;
    childViews.layer.masksToBounds = NO;
    childViews.layer.shouldRasterize = YES;
Run Code Online (Sandbox Code Playgroud)

xcode objective-c crash-log ios ios-simulator

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

socket.io 可以处理多少事件?

我正在为我的个人项目尝试 Socket.io(服务器和客户端)。因为这是我第一次尝试使用 node.js,甚至是 javascript 和 mongodb,所以我对服务器的性能感到有些困惑。

我创建了一个复杂的实时系统,其中包含许多事件和许多房间。服务器的事件非常有限,但客户端的事件太多。这些事件分布在房间下。

例如 -

  • 房间 R1 >> 事件 R1E1、事件 R1E2、事件 R1E3.... 事件 R1EN

  • 房间 R2 >> 事件 R2E1、事件 R2E2、事件 R2E3.... 事件 R2EN

所有数据都存储在mongodb中。工作很棒。

但是,当注册了 10-15 个事件的少数客户端 (5-8) 开始发送数据时,就会出现问题。服务器最初工作正常,但几分钟后它停止响应。即使服务器没有响应,客户端也保持连接。请求堆积如山。有时服务器收到最后一个会话请求。

当最终设备开始注册事件时,一切就开始了。所以我想知道 socket.io 可以处理多少事件?

PS这里我认为“事件”是 -

io.on('event', function(msg){
    console.log( msg);
});
Run Code Online (Sandbox Code Playgroud)

编辑 2

当我研究 node.js 时,节点基本上是一个运行在单线程上的进程,如果它需要处理其他事情,它会启动另一个节点(异步线程),让新线程独自完成处理并返回主线程跑步。如果我们想处理一些过程序列,我们使用“async/await”。

在我的情况下,当客户端第一次连接时,我只在一个地方使用异步。在这里,我查询 3 个不同的 mongodb 集合并返回有关事件的数据。

我的服务器目前在 MacBook pro(16 GB RAM,i7 第 6 代四核)上运行。它应该至少处理 4-6 个并发线程。

我创建了一个负载测试,100000 个不同的事件分布在 1000 个房间下,每秒有 5 个请求查询数据库。它工作正常。几乎 40% 的 RAM 和 250% 的 CPU 是最大负载。

我与 …

javascript mongodb node.js socket.io iot

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