我有一个叫做的按钮,我给它一个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上没有.当你长按按钮本身时,这就是项目获取按钮描述的全部内容.如果有人有任何想法如何用我迄今为止所做的完成,或者有不同的方法,请告诉我.
谢谢!
我正在开发一个时间应用程序,显示不同时区的时间.为此我使用标准时间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 …
我借助滑块在视图上使用一段代码投影.滑块设置为-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) 我正在为我的个人项目尝试 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 是最大负载。
我与 …
ios ×3
objective-c ×2
xcode ×2
cocoa-touch ×1
crash-log ×1
iot ×1
javascript ×1
mongodb ×1
node.js ×1
nsdate ×1
socket.io ×1
swift ×1
timezone ×1