小编Dru*_*rux的帖子

确定Swift字典是否包含密钥并获取其任何值

我目前正在使用以下(笨拙的)代码片段来确定(非空)Swift字典是否包含给定密钥以及从同一字典中获取一个(任何)值.

怎么能把这个更优雅地放在Swift中呢?

// excerpt from method that determines if dict contains key
if let _ = dict[key] {
    return true
}
else {
    return false
}

// excerpt from method that obtains first value from dict
for (_, value) in dict {
    return value
}
Run Code Online (Sandbox Code Playgroud)

dictionary swift

238
推荐指数
4
解决办法
19万
查看次数

在Swift数组中找到第一个元素匹配条件(例如EKSource)

我想在Swift中找到第一个带有"单"线表达式EKSource的类型EKSourceType.Local.这是我目前拥有的:

let eventSourceForLocal = 
    eventStore.sources[eventStore.sources.map({ $0.sourceType })
        .indexOf(EKSourceType.Local)!]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法(例如没有映射和/或通用版本find)?

ios eventkit swift ios9 swift2

34
推荐指数
5
解决办法
3万
查看次数

使用Gson将Java 8 LocalDate序列化为yyyy-mm-dd

我正在使用Java 8和Gson的最新RELEASE版本(通过Maven).如果我序列化我得到这样的东西LocalDate

"birthday": {
        "year": 1997,
        "month": 11,
        "day": 25
}
Run Code Online (Sandbox Code Playgroud)

在哪里我会更喜欢"birthday": "1997-11-25".Gson是否也支持更简洁的开箱即用格式,或者我是否必须为LocalDates 实现自定义序列化器?

(我试过了gsonBuilder.setDateFormat(DateFormat.SHORT),但这似乎没有什么区别.)

java gson

27
推荐指数
3
解决办法
1万
查看次数

使用CSS布局打印包含许多列/行的HTML表格?

我想从HTML打印一个大表(大到大约3张纸宽).如果可能,CSS应该足够布局,解决方案应该适用于不同的浏览器.

我目前正在定义以下样式规则:

table { page-break-inside:auto; }
tr    { page-break-inside:auto; }
Run Code Online (Sandbox Code Playgroud)

当我检查DOM元素时,例如在Firefox 33.0.2中(在OS X上),我可以看到规则被识别,但是当我查看打印预览(文件 | 打印 | PDF | 打开预览中的PDF)时,所有列都是不适合在第一页被切断,即我收到1页打印输出而不是3.我也尝试了Internet Explorer 11和10相同的效果.

那么如何使用CSS布局大型HTML表格(最终在列数方面都很大)?

奖金的问题:如果分页式的部件确实只适用于在指示块级元素之前的回答,如果我从我的构建表将帮助它divs,而不是td小号瞄准打印输出时?

UPDATE

这是我刚刚在JSFiddle上尝试过的相关示例.(我在那里没有帐户,所以FWIK我无法提供直接链接.)

HTML:

<body>
<table>
<tr>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_0</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_1</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_2</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_3</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_4</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_5</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_6</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_7</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_8</td>
<td>The_quick_brown_fox_jumped_over_the_lazy_dog_A_9</td>
</tr>
</table>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS:

table { page-break-inside:auto; }
td    { border:1px solid lightgray; }
tr    { page-break-inside:auto; }
Run Code Online (Sandbox Code Playgroud)

如果我尝试打印此表(例如,通过应用此框架 | 打印框架... | PDF | 在预览中打开PDF到Firefox 33.1 for OS X中的JSFiddle 结果视图和纸张尺寸/方向A4 …

html css printing layout internet-explorer-10

23
推荐指数
2
解决办法
7万
查看次数

谁拥有服务帐户通过Google Calendar API创建的日历,以及如何共享这些日历?

假设我有一个some.account@gmail.com带有项目的Google帐户project-1(在Google Developer Console中配置为Google App Engine应用程序)和一个包含12..@developer.gserviceaccount.com属于它的电子邮件地址的服务帐户.

我知道如何使用此服务帐户创建日历并以编程方式操作其条目:我使用Google API客户端库(Java版本,带有服务帐户凭据)在我的Google App Engine应用程序中调用Google Calendar API只是.但是,任何此类创建的日历似乎都由服务帐户明确拥有,而不是由我的Google帐户使用.我从以下观察中得出结论:

  • 当我在Google日历用户界面中查看我的Google帐户的日历时,所有以编程方式创建的日历都不会显示在日历下My calendars.
  • 当我尝试通过发出Other calendars| 来访问这样的日历 Add a friend´s calendar使用服务帐户的电子邮件地址,我可以发送请求,但它永远不会得到答复(可能是因为服务帐户的电子邮件地址不是"真实的"电子邮件地址).
  • 当我以编程方式创建日历时,我没有设置CalendarListEntry#hidden,因此应该应用默认值false.

所以我的问题是:如何在普通的Google Calendar Web UI中访问使用Google Calendar API(以及我的案例中的Java客户端)以编程方式创建的日历和日历条目.例如,服务帐户可以与其拥有的Google帐户共享其日历,还是可以使用UI中的服务帐户凭据直接操作Google帐户的日历.

我意识到在同一主题上有一些先前的问题,但到目前为止它们并没有帮助我解开这个谜团.

google-app-engine google-calendar-api google-account service-accounts

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

如何在Swift 2中符合NSCopying并实现copyWithZone?

我想实现一个简单的GKGameModel在夫特2.苹果例如Objective-C中被表达,并且包括此方法声明(所要求的协议NSCopyingGKGameModel继承):

- (id)copyWithZone:(NSZone *)zone {
    AAPLBoard *copy = [[[self class] allocWithZone:zone] init];
    [copy setGameModel:self];
    return copy;
}
Run Code Online (Sandbox Code Playgroud)

这如何转化为Swift 2?以下在效率和忽略区域方面是否合适?

func copyWithZone(zone: NSZone) -> AnyObject {
    let copy = GameModel()
    // ... copy properties
    return copy
}
Run Code Online (Sandbox Code Playgroud)

swift swift2 gameplay-kit

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

为什么iOS自动布局导致Retina前显示屏出现明显的舍入错误(包括单元测试)

我目前很难理解为什么以下单元测试在iPad 2上失败.相对于两个布局约束所需的精确居中,自动布局似乎略微(0.5点)view内部误定位superview.看起来特别奇怪的是,关键测试(但最后断言)传递给iPhone 5,因此明显的舍入错误仅影响一个(iOS 6)平台.这里发生了什么?

更新1我已经改变了代码,以确保这两个帧的宽度和高度方面得到充分的约束,即使translatesAutoresizingMaskIntoConstraintsNO,所建议的可能相关的补救措施在这里.但是,这显然不会改变这种情况.

#import "BugTests.h"

@implementation BugTests

- (void)testCenteredLayout {
    UIView *superview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 768, 88)];
    superview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    superview.translatesAutoresizingMaskIntoConstraints = YES;

    UILabel *view = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    view.text = @"Single Round against iPad.";
    view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    view.translatesAutoresizingMaskIntoConstraints = NO;
    [view addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth  relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:206.0]];
    [view addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch ios retina-display autolayout

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

不能在Objective-C单元测试中使用Swift类

为了在现有的Objective-C项目中使用Swift类,我遵循了这个配方MyProject.这很好.

但是,我仍然无法在同一项目的单元测试中使用相同的Swift类.编译器标记了Objective-C单元测试所说#import "MyProjectTests-Swift.h"的行file not found.

如果试图改变测试目标的Product Module Name从默认MyProjectTestsMyProject作为一个评论认为(解答)问题.然而,编译器现在标记了我的Objective-C单元测试所说#import "MyProject-Swift.h"的行file not found.

那么如何将Swift类集成到用Objective-C编写的(XCTest)单元测试中呢?Apple提供任何食谱吗?

objective-c ios xctest swift ios8

11
推荐指数
2
解决办法
5616
查看次数

为什么Microsoft SQL Server 2012查询需要几分钟而不是JDBC 4.0,而在Management Studio中需要几分钟?

我正在处理ResultSet从远程Microsoft SQL Server 2012到使用Microsoft JDBC Driver 4.0的Java客户端检索相对较大的性能问题.

当我在远程服务器的Microsoft SQL Server Management Studio上运行相应的查询时,它返回约.220k行几乎瞬间完成.当我从客户端发出相同的查询时,它会停止.同样的测试在客户端上运行良好,早期版本的数据库只有大约.400行合格.

我尝试通过附加;responseBuffering=adaptive"到传递给的URL 来解决这个问题DriverManager.getConnection().建立连接后,我在结果中看到了这个属性(以及其他几个)connection.getMetaData().getURL(),但是[ connection.getClientInfo(responseBuffering)返回null,而且客户端仍然停滞不前.

这里可能出现什么问题,如何指示Microsoft SQL Server(不仅仅是以Java编程方式建议)它必须以较小的块而不是一次性返回行,或者通过其他一些措施来改进JDBC查询时间.

两个进一步的观察似乎有点奇怪,可能完全指向不同的根本原因:

  • 当客户端停止时,它仍然只显示相对较轻的CPU负载,这与我对重垃圾收集的期望不同
  • "responseBuffering =自适应"应在正常默认由现在

更新我已经检查过,发现在我的情况下切换PreparedStatementStatement没有改善的东西(显然在其他情况下可以帮助).

更新这是我当前的查询:

select 
    PARENT.IDENTIFIER    as PARENT_IDENTIFIER,
    PARENT.CLASS         as PARENT_CLASS,
    CHILD.TYPE           as CHILD_TYPE,
    CHILD.IDENTIFIER     as CHILD_IDENTIFIER,
    PROPERTY.IDENTIFIER  as PROPERTY_IDENTIFIER,
    PROPERTY.DESCRIPTION as PROPERTY_DESCRIPTION,
    PROPERTY.TYPE        as PROPERTY_TYPE,
    PROPERTY.PP          as PROPERTY_PP,
    PROPERTY.STATUS      as PROPERTY_STATUS,
    PROPERTY.TARGET      as PROPERTY_TARGET -- a date
from …
Run Code Online (Sandbox Code Playgroud)

java sql-server jdbc sql-server-2012

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

Xcode目标的构建阶段的顺序有多灵活?

是否可以在Xcode 6.1中配置目标的构建阶段,以便在编译源阶段之前可以发生复制文件阶段?

xcode xcode6.1

9
推荐指数
2
解决办法
2779
查看次数