小编Joe*_*ang的帖子

我可以为Safari View Controller预加载Web内容吗?

我可以毫无问题地创建Safari View Controller:

let svc = SFSafariViewController(URL: NSURL(string: remote_url)!, entersReaderIfAvailable: true)
self.presentViewController(svc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

在将视图控制器呈现给用户之前,有什么方法可以预先加载URL吗?

例如,我可以先在后台预加载URL(Web内容),在用户点击某些内容后,我可以立即向Safari View Controller显示内容.用户将感觉页面加载更快或更快.

PS Workarounds/hacks也是可以接受的.例如,使用缓存或在后台启动视图控制器等.

编辑:请仅考虑SFSafariViewController.

objective-c swift sfsafariviewcontroller

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

如何在使用constraintEqualToAnchor()设置它们后更改自动布局约束?

我尝试使用以下方法设置具有AutoLayout约束的视图constraintEqualToAnchor():

override func viewDidLoad() {
    super.viewDidLoad()

    let myView = UIView()
    myView.backgroundColor = UIColor.orangeColor()
    myView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(myView)

    myView.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active = true
    myView.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor).active = true
    myView.topAnchor.constraintEqualToAnchor(view.topAnchor).active = true
    myView.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor).active = true

    /******************************************/
    /* I try to change one of the constraints */
    /******************************************/
    myView.leftAnchor.constraintEqualToAnchor(view.rightAnchor, constant: -100).active = true  
}
Run Code Online (Sandbox Code Playgroud)

在最后一行代码中,我尝试更改其中一个约束.我认为它会工作,但它在控制台日志中给出了一些错误

"<NSLayoutConstraint:0x7fb53a5180d0 H:|-(0)-[UIView:0x7fb53a5190b0](LTR)   (Names: '|':UIView:0x7fb53a519240 )>",
"<NSLayoutConstraint:0x7fb53a51f660 H:[UIView:0x7fb53a519240]-(-100)-[UIView:0x7fb53a5190b0](LTR)>",
"<NSLayoutConstraint:0x7fb53a711ee0 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7fb53a519240(414)]>"
Run Code Online (Sandbox Code Playgroud)

使用时constraintEqualToAnchor()?,在设置约束后,更改约束的正确方法是什么?

uiview ios autolayout nslayoutconstraint swift

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

如何检查Swift中的两个集合是否相同?

我正在使用Swift并有两套,说:

var setA: set<Int>
var setB: set<Int>
Run Code Online (Sandbox Code Playgroud)

如何比较这两组以确定它们是否相同(无论顺序如何都具有相同的元素)?

set swift swift2

12
推荐指数
2
解决办法
4069
查看次数

如何正确删除SFSafariViewController作为子视图控制器?

我正在使用这个SO答案提供的技术在SFSafariViewController中预加载一些URL,如下所示:

addChildViewController(svc)
svc.didMoveToParentViewController(self)
view.addSubview(svc.view)
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码删除Safari View控制器:

svc.willMoveToParentViewController(nil)
svc.view.removeFromSuperview()
svc.removeFromParentViewController()
Run Code Online (Sandbox Code Playgroud)

现在我可以预加载URL并毫无问题地显示Safari视图.但是,在我重复该过程(预加载/显示/删除)几次(可能超过30次)后,应用程序将因某些内存问题而崩溃,因为日志显示Memory level is not normal or this app was killed by jetsam应用程序崩溃的时间.

在崩溃之前,我看到了一些关于可能泄漏警告的日志:

<Warning>: notify name "UIKeyboardSpringBoardKeyboardShow" has been registered 20 times - this may be a leak

<Warning>: notify name "com.apple.SafariViewService-com.apple.uikit.viewService.connectionRequest" has been registered 20 times - this may be a leak
Run Code Online (Sandbox Code Playgroud)

我在删除Safari View控制器时是否正确执行此操作?我错过了什么吗?或任何解决此问题的建议?

ios childviewcontroller swift sfsafariviewcontroller

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

将一些文本垂直居中放在NSTableView行中的正确方法是什么?

我的OS X应用程序具有NSTableView更大的行高:

myTableView.rowSizeStyle = .large
Run Code Online (Sandbox Code Playgroud)

我尝试在其中放入一些文字,但我发现我放入的文字不能垂直居中.

请参阅下面的代码.我有三列,前两个使用NSTextFieldNSTextView放置一些文本.第三个是复选框按钮.

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {

    if (tableColumn?.identifier == "Column1") {

        let field = NSTextField()
        field.stringValue = "someText"
        field.isBordered = false
        field.isEditable = false
        field.backgroundColor = NSColor.red
        return field
    } else if (tableColumn?.identifier == "Column2") {

        let field = NSTextView()
        field.string = "someText"
        field.backgroundColor = NSColor.green
        return field
    } else if (tableColumn?.identifier == "Column3") {

        let field = NSButton()
        field.setButtonType(NSSwitchButton)
        field.title …
Run Code Online (Sandbox Code Playgroud)

macos nstableview swift

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

如何排除CSS格式?

可能重复:
如何防止CSS继承?
有没有办法从css类中排除标记

我有这样的CSS

.div1 img {
  // ...
}

.myimg {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

我的HTML代码是这样的,

<div class="div1">
    ...
    <img src="..." class="myimg">      // image html
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

定义的css格式.div1 img显然适用于图像html代码.但是,我实际上并不希望它发生.我该怎么办才能不对该图像html代码产生'.div1 img'效果?我不想修改div1 img或相关的html代码的内容,因为它已经在其他地方使用过(而且它是一个我不想搞砸的模板代码).

PS我无法删除或修改<div class="div1">,因为周围还有其他模板代码.

谢谢.

css

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

XCode Simulator:如何更改其快捷方式?

当XCode中的模拟器运行时,旋转的默认快捷方式是Cmd + Left和Cmd + Right.

有没有办法改变它们?例如,将它们更改为Ctrl + Left和Ctrl + Right?

xcode ios-simulator xcode7

8
推荐指数
2
解决办法
1022
查看次数

在Swift(iOS应用程序)中,何时需要使用其他整数类型?

我看到Swift中有许多整数类型Int,例如:

Int8
UInt32
uint_fast16_t
Run Code Online (Sandbox Code Playgroud)

我可以理解他们的定义,但我想知道何时/为什么我应该使用它们而不是Int

例如,Int8是一个8位整数.根据我的理解,除非我想节省一些内存,为什么还要费心呢?

PS.我正在使用Swift进行iOS应用程序开发.

swift

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

在MongoDB中,如果有时无法调用close(),如何确保关闭所有连接?

我正在使用node.js和MongoDB,我有异步代码(async.queue)来更新MongoDB.

当队列中的所有任务完成后,我打电话

db.close()   // db is a Mongo client instance
Run Code Online (Sandbox Code Playgroud)

因此任务使用的所有连接都是关闭的.但是,在极少数情况下,我发现mongoDB日志中存在从未关闭的打开连接.因此,几周后,将有数百个连接从未关闭.

我研究并发现可能我应该设置此选项maxIdleTimeMS,但所有驱动程序都不支持此选项(node.js驱动程序不支持此选项).

即使我可以微调我的代码,以确保没有这样的条件close()没有被调用.我仍然想知道如果一个应用程序没有db.close()出于某种原因(或作为额外的保险)呼叫,有什么办法可以防止在MongoDB中挂起连接?

mongodb node.js

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

如何通过 NSUserDefaults 保存/加载 Set 类型?

我正在使用 Swift 并且有一个包含 Int 的 Set 类型:

var setA : Set<Int>
Run Code Online (Sandbox Code Playgroud)

如何使用 保存/加载此 Set 类型NSUserDefaults

swift swift2

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