我正在考虑在我的应用程序中编写一个简单的同步功能,其中一个问题是两个远程计算机之间的时间同步,每个计算机都有自己的时钟(特别是关于文件/对象的修改日期).
我确信已就这一主题进行了大量研究,并且不想过于理论化,但我想知道是否有任何可接受的最佳实践可以最大限度地减少远程时钟之间的时间差异?
例如,一个开始是始终使用通用时间(UTC),因为这可以避免时区问题,但不能保证两台计算机将具有完全相同的系统时间.幸运的是,我正在做的工作并不是非常精细,所以它并不是一个非常重要的问题,但我仍然很好奇.
一种解决方案是始终在两端使用相同的时钟,例如全局时间服务器,而不是本地系统时钟.据推测,这(与共享资源锁相结合)可以保证同步时间不会意外重叠,但这不是很实用.
有人认为只是突然出现在每个节点(每个客户端)与先前某点计算的偏移同步,可能是通过计算系统时钟与全球时间服务器的偏移量.这只需要偶尔进行,因为偏移本身不会在短时间内发生很大变化.
更新:我只想补充一点,我对实际同步两台计算机的系统时钟并不感兴趣 - 我认为操作系统在大多数情况下都会处理这个问题.这只是一个如何确保应用程序的两个实例使用同步时间的问题,尽管在这个时代,我认为系统时钟几乎肯定会在一些非常小的delta内同步.
Swift的协议实现现在让我疯狂.我有observers一个定制协议定义的数组Observing,我试图从给定元素的数组中删除一个元素,但Swift抱怨Observing没有实现Identifiable(我认为这实际上是我自己的另一个协议,除非还有一个系统协议称为).我想要做的就是参考比较并删除实际对象.我不关心对对象进行任何比较.
var observers = [Observing]()
func removeObserver( observer: Observing ) {
for i in 0 ..< self.observers.count {
if self.observers[i] == observer { // <='Observing' is not convertible to 'Identifiable'...?
self.observers.removeAtIndex(i)
break
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个AnyObject?变量,我想比较参考相等性:
var oldValue: AnyObject?
var newValue: AnyObject?
...
if oldValue != newValue {
changed = true
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我显然无法直接比较两个选项.我想要的行为好像我id在Objective-C 中比较s,即:
true 如果两者都是 niltrue 如果两者都有值且值也相等false 除此以外有没有一种优雅的方式在Swift中编写它(理想情况下无需编写自定义扩展)?
这是我提出的最好的:
if !(oldValue != nil && newValue != nil && oldValue == newValue)
Run Code Online (Sandbox Code Playgroud)
不是很漂亮 :(
我试过修改我的Product.wxs中的WixVariables集合,如下所示:
<WixVariable Id="MainLogoBmp" Value="Resources/Images/weblabel.jpg" />
<WixVariable Id="WixUIBannerBmp" Value="Resources/Images/installer_banner.jpg" />
Run Code Online (Sandbox Code Playgroud)
(第一部分是我尝试过的,下面的部分是一个有效的股票变量的例子)
...然后用!(wix.MainLogoBmp)引用变量:
<Control Id="Bitmap"
Type="Bitmap"
X="0"
Y="0"
Width="258"
Height="185"
TabSkip="no"
Text="!(wix.MainLogoBmp)" />
Run Code Online (Sandbox Code Playgroud)
...但是当我尝试编译时,我收到以下错误:
错误17 ICE17:位图:控件的'Resources/Images/weblabel.jpg':对话框的'位图':二进制表中找不到'SimpleDlg'
是的,图像是项目的一部分,设置为"内容",就像其他的一样.
这是让我坚持一段时间的事情.当我控制一个DOM节点(由示例返回document.getElementById)时,它显示为交互式html元素,就像它出现在"元素"选项卡上一样.
这可以很方便,但有时我只想扩展对象并查看其所有属性,就像我可以为我登录到控制台的其他所有对象做的那样.
有没有什么办法可以让DOM节点作为常规对象在控制台中显示?
如果在某个维度上存在重复的一维背景,如果图像是1px宽而不是10或20像素宽,那么性能是否有任何可见的差异?
我有一个12 UITextField秒的视图控制器.
它非常适合3.5"显示屏.

我需要将其设置为iPhone 5(4英寸显示屏),以便通过在两者之间增加额外空间来UITextField覆盖整体UIView.
我试图通过自动布局来做到这一点,但它无法正常工作.

这是我的代码:
- (void) viewWillLayoutSubviews
{
int h = txt1.bounds.size.height * 12;
float unusedHorizontalSpace = self.view.bounds.size.height - h ;
NSNumber* spaceBetweenEachButton= [NSNumber numberWithFloat: unusedHorizontalSpace / 13 ] ;
NSMutableArray *constraintsForButtons = [[NSMutableArray alloc] init];
[constraintsForButtons addObjectsFromArray: [NSLayoutConstraint constraintsWithVisualFormat: @"V:|-50-[txt1(==30)]-(space)-[txt2(==txt1)]-(space)-[txt3(==txt1)]-(space)-[txt4(==txt1)]-(space)-[txt5(==txt1)]-(space)-[txt6(==txt1)]-(space)-[txt7(==txt1)]-(space)-[txt8(==txt1)]-(space)-[txt9(==txt1)]-(space)-[txt10(==txt1)]-(space)-[txt11(==txt1)]-(space)-[txt12]-(space)-|"
options: NSLayoutFormatAlignAllCenterX
metrics: @{@"space":spaceBetweenEachButton}
views: NSDictionaryOfVariableBindings(txt1,txt10,txt11,txt12,txt2,txt3,txt4,txt5,txt6, txt7,txt8,txt9)]];
[self.view addConstraints:constraintsForButtons];
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,[txt12(==txt1)]它显示与3.5"屏幕相同,并在下面留下空间.
我在哪里弄错了?
我有一个相当简单的问题,希望有一个简单的答案.我使用Swift的filter方法使用匿名闭包参数过滤对象集合$0:
let filteredArray = myArray.filter {
$0.name != "Bob"
}
Run Code Online (Sandbox Code Playgroud)
我在过滤器闭包中设置了一个断点,只想检查它的值$0,但是当我po $0在控制台上键入它时,它给了我:
(lldb)po $ 0
error :: 2:1:错误:匿名闭包参数未包含在闭包中
$ 0
^
我怎么能绕过这个?
为了清楚起见,代码编译并运行,但在运行时在控制台上给出了这个错误.
给定C#中的两个数组,执行set减法的最简单方法是什么?显然,这在Ruby中很容易实现.基本上我只想删除数组a中数组中的元素b:
string[] a = new string[] { "one", "two", "three", "four" };
string[] b = new string[] { "two", "four", "six" };
string[] c = a - b; // not valid
Run Code Online (Sandbox Code Playgroud)
c应该相等{ "one", "three" }.b - a会屈服{ "six" }.
我希望能够列出所有当前活动的手势识别器(所以我可以暂时禁用它们).这有可能吗?
swift ×3
arrays ×2
ios ×2
autolayout ×1
c# ×1
clock ×1
closures ×1
css ×1
customdialog ×1
dom ×1
html ×1
image ×1
javascript ×1
objective-c ×1
optional ×1
performance ×1
protocols ×1
safari ×1
time ×1
web ×1
wix ×1
xcode ×1
xcode6 ×1