小编Ale*_*loz的帖子

某些文档功能在Xcode 8中不起作用

我在Xcode 8中试验了Swift的文档注释,发现并非Markup Formatting Reference的每个功能都有效.特别是,我不能使seealso:标注工作,不能将图像URL插入我的文档注释.

这就是我的seealso:样子:

看到了

我使用了与这些网页上描述的完全相同的评论.

有没有人有同样的问题?有人知道解决方案吗?

documentation xcode swift xcode8

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

无法绑定到0.0.0.0:8080,它可能正在使用或需要sudo

有时我尝试从Xcode运行Vapor应用程序时会出现此错误.重新打开Xcode没有帮助,只重新启动系统.这是框架的错误吗?我该怎么做才能防止这种情况发生?

swift vapor

14
推荐指数
1
解决办法
1604
查看次数

自我,协议扩展和非最终类

我尝试为UIView编写一个静态方法,它从nib实例化该类的视图.方法应该是通用的,并且适用于每个UIView子类.另外,我想保存类型信息 - 例如,在此代码中

let myView = MyView.loadFromNib()
Run Code Online (Sandbox Code Playgroud)

编译器推断出myViewMyView类.经过几次试验,我决定使用协议扩展,否则我将无法访问Self内部方法体.

看起来这应该工作:

protocol NibLoadable {
    static func loadFromNib(name: String?) -> Self
}

extension NibLoadable where Self: UIView {
    static func loadFromNib(name: String? = nil) -> Self {
        let nibName = name ?? "\(self)"
        let nib = UINib(nibName: nibName, bundle: nil)
        return nib.instantiateWithOwner(nil, options: nil)[0] as! Self
    }
}

extension UIView: NibLoadable {}
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.我收到编译错误

Method 'loadFromNib' in non-final class 'UIView' must return `Self` to conform to …
Run Code Online (Sandbox Code Playgroud)

protocols swift swift-extensions swift-protocols

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

如何使用Vapor提供静态文件?

我正在尝试使用Swift和Vapor框架编写服务器端应用程序.但是,我无法弄清楚,如何使用Vapor提供静态文件.将它们移动到Publicor Resources目录是不够的.

我怎样才能做到这一点?

UPD. 我执行了Tanner Nelson建议的步骤,但它仍然无效.

到目前为止我尝试了什么:

  1. vapor buildvapor run(使用Vapor Toolbox v.6.6).

  2. ./build/debug/App从根目录(包含Package.swift).

  3. Tanner Nelson建议,在编辑方案后运行Xcode 8 beta.

在所有这些情况下我都会收到错误 {"error":true,"message":"Page not found"}

我有vapor_logo.png一个Public文件夹里面的文件,也有文件夹里面的Public/images/文件.我尝试请求它但它失败了.我提出的要求:http://localhost:8080/image/vapor_logo.pnghttp://localhost:8080/vapor_logo.png.但是,其他路线工作正常.

UPD 2.嗯,这就是我的错误.首先,我认为被调用的文件vapor_logo.png实际上被调用了vapor-logo.png.其次,当您提出请求时,案件很重要.我也尝试使用名称请求文件IMG_8235.JPG但写入文件扩展名为jpg,因此出错了.

所以,回顾一下:如果您遇到与我相同的问题,请遵循Tanner Nelson的回答,并确保所请求文件的名称与磁盘上的文件名完全匹配.

swift vapor

13
推荐指数
3
解决办法
3432
查看次数

CocoaPods和Carthage

我和Carthage以及Cocoapods都有过一个项目.它们都有一个共同的依赖(PureLayout,确切地说).奇怪,但项目编译好,没有任何关于类重新声明等的错误.所以问题是:当我调用PureLayout的方法 - 迦太基或Cocoapods的方法时,它为什么工作以及实际使用了哪个版本的依赖?

cocoapods swift carthage

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

如何安装Xcode源代码编辑器扩展?

我创建了一个源编辑器扩展,但不了解如何使用它.它在调试Xcode版本(带有灰色图标)时工作正常,但我找不到将此扩展安装到"真正的"Xcode的方法.文档对于这个主题来说非常模糊.我尝试过 - 1.构建并运行主机应用程序.2.将生成的.appex文件移动到Xcode的PlugIns目录中.没有什么对我有用.

我使用macOS Sierra和Xcode 8.

xcode xcode-extension

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

Swift:导出依赖的API

假设我们有写在斯威夫特2个框架:A.frameworkB.framework,A要看B.我希望每个项目依赖于A能够访问框架的api B而无需import B在项目源文件中.如何实现?

编辑:特别是我很想知道如何通过Cocoapods完成这项工作.

另一个编辑:我认为如果我解释出现这个问题的背景会有所帮助,因为尽管它的持续时间和赏金,我仍然没有得到合适的答案.

所以,我有pod Freestyler(https://github.com/cayugasoft/Freestyler),它本身依赖于pod FreestylerCore(https://github.com/cayugasoft/FreestylerCore).工作正常,但import FreestylerCore即使import Freestyler完成,我也必须在项目中.它看起来有点烦人,因为我认为这个依赖(Freestyler -> FreestylerCore)作为实现细节,我想如果库的用户自动使这些东西工作而不导入除主pod之外的任何其他东西,Freestyler.所以,这就是我问这个问题的原因.有没有办法实现这个?

cocoapods swift

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

快速构建不起作用

我正在尝试在XCode上运行Kitura项目.我尝试按照此页面上的说明进行操作([ https://github.com/IBM-Swift/Kitura/wiki/Building-your-Kitura-application-on-XCode]),但是我在第3步 - 运行时失败了swift build -X.我收到此错误:

error: unable to invoke subcommand: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build (No such file or directory) 
Run Code Online (Sandbox Code Playgroud)

看起来我安装了最新的工具链(见下面的截图). 我也有XCode 7.3.1和XCode 8 beta.你有什么建议来解决这个问题?

swift xcode-tools kitura

3
推荐指数
2
解决办法
2784
查看次数

传递方法而不是关闭时会发生保留循环

在Swift中,我们可以在ObjC中没有很好的功能:可以在任何地方使用一个方法来使用闭包.但它可以导致保留周期.看看这个例子:

import Foundation

class C1 {
    let closure: Void -> Void
    init(closure: Void -> Void) {
        self.closure = closure
    }

    deinit {
        print("C1 deinit")
    }
}

class C2 {
    var c1: C1!

    func initializeC1() {
        c1 = C1(closure: f)
    }

    func f() {}

    deinit {
        print("C2 deinit")
    }
}

func main() {
    let c2 = C2()
    c2.initializeC1()
}

main()
Run Code Online (Sandbox Code Playgroud)

这里我们创建了循环C2 - > C1 - > f - > C2.如果您运行此程序,deinit将不会被调用.但是,如果你更换finitializeC1{},例如,这将是.

对于常规闭包,我们可以使用捕获列表来避免强保留,但看起来您不能将它们用于方法.所以,问题是:在这种情况下我们怎么能打破保留周期呢?它有可能吗?

closures memory-management retain-cycle swift

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

HTTPS 代理,如 Charles

我想在 node.js 中实现代理服务器,这有点类似于 Charles 代理 - 它应该拦截来自我的移动应用程序的 HTTPS 请求,破译它们,根据正文内容将其中一些请求路由到原始后端,并使用一些静态文件模拟其他请求。

  1. Charles 或其他代理如何处理 HTTPS 内容?
  2. 我需要在移动设备上使用自签名根证书吗?
  3. 有什么图书馆可以帮助我吗?

https proxy node.js charles-proxy

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