小编Joh*_*ton的帖子

为什么要创建"Implicitly Unwrapped Optionals",因为这意味着你知道它有价值?

为什么要创建一个"Implicitly Unwrapped Optional"来创建一个常规变量或常量?如果您知道它可以成功解开,那么为什么要首先创建一个可选项呢?例如,为什么这样:

let someString: String! = "this is the string"
Run Code Online (Sandbox Code Playgroud)

会比以下更有用:

let someString: String = "this is the string"
Run Code Online (Sandbox Code Playgroud)

如果"optionals指示常量或变量允许'没有值'",但"有时从程序的结构中可以清楚地看到,在首次设置该值之后,可选项将始终具有值",那么有什么意义呢?首先让它成为可选项?如果你知道一个可选项总是会有一个值,那么它不是可选的吗?

design-patterns optional swift

481
推荐指数
6
解决办法
6万
查看次数

如何在已有的Docker容器上运行命令?

我创建了一个容器,-d因此它不是交互式的.

docker run -d shykes/pybuilder bin/bash
Run Code Online (Sandbox Code Playgroud)

我看到容器已退出:

CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                      PORTS               NAMES
d6c45e8cc5f0        shykes/pybuilder:latest   "bin/bash"          41 minutes ago      Exited (0) 2 seconds ago                        clever_bardeen
Run Code Online (Sandbox Code Playgroud)

现在我想在机器上运行偶尔的命令并退出.只是为了得到答复.

我试着启动机器.我试着附上.我以为我可以run用容器打电话,但似乎不允许这样做.使用start似乎只是运行然后快速存在.

退出后我想回到交互模式.

我试过了:

docker attach d6c45e8cc5f0
Run Code Online (Sandbox Code Playgroud)

但我得到:

2014/10/01 22:33:34 You cannot attach to a stopped container, start it first
Run Code Online (Sandbox Code Playgroud)

但是,如果我开始它,它无论如何都会退出.抓住22.我无法获胜.

docker

447
推荐指数
12
解决办法
49万
查看次数

类Y的对象X没有在Swift中实现methodSignatureForSelector

我有一个类Person,它被多次实例化.每个人都得到自己的计时器.当我在initPerson我打电话startTimer().

class Person {
 var timer = NSTimer()
 func startTimer() {
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("timerTick"), userInfo: nil, repeats: true)
 }

 func timerTick() {
    angerLevel++
    println("Angry! \(angerLevel)")
 }
...
...
}
Run Code Online (Sandbox Code Playgroud)

所以我可能在一个数组中有3个Person实例Person[].我收到一个错误:

2014-06-25 13:57:14.956 ThisProgram[3842:148856] *** NSForwarding: warning: object 0x113760048 of class '_TtC11ThisProgram6Person' does not implement methodSignatureForSelector: -- trouble ahead
Run Code Online (Sandbox Code Playgroud)

我在其他地方读过我应该继承的,NSObject但这是在Swift而不是Obj-C.该功能在课堂内,所以我不知道该怎么做.

swift

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

无法在Swift中分配给'Y'中的'X'

我有一本字典Structs.我试图分配struct我循环时的值dictionary.斯威夫特告诉我cannot assign to 'isRunning' in 'blockStatus'.我一直没能找到在文档上的任何这种特殊的不变性dictionariesstructs.
直接从操场上:

import Cocoa

struct BlockStatus{
 var isRunning = false
 var timeGapForNextRun = UInt32(0)
 var currentInterval = UInt32(0) 
}

var statuses = ["block1":BlockStatus(),"block2":BlockStatus()]

for (block, blockStatus) in statuses{
 blockStatus.isRunning = true
}

cannot assign to 'isRunning' in 'blockStatus'
blockStatus.isRunning = true
Run Code Online (Sandbox Code Playgroud)

如果我将其更改struct为a,这确实有效class.

我猜它与复制结构并始终引用类的事实有关?

编辑:所以即使它是复制它..为什么我不能改变它?它会给我带来错误的结果,但你可以改变常量的成员而不是常量本身.例如,你可以这样做:

class A {
    var b = 5
}

let a = A()
a.b = …
Run Code Online (Sandbox Code Playgroud)

struct swift

20
推荐指数
2
解决办法
7424
查看次数

如何在swift中创建不可变数组的可变副本?

现在,由于完整的值语义,Swift的Array是真正不可变的,我如何创建一个不可变数组的可变副本?与Obj-C相似mutableCopy().我当然可以将数组转发到NSArray并使用mutableCopy()但不想使用NSArray,因为它没有严格键入.

我有一个toolbar具有items从故事板.我想从工具栏中删除一个项目并使用toolbar.setItems.我想在没有铸造的情况下这样做NSArray,因为这些功能都没有NSArrays,他们采取[AnyObject].

显然现在当我打电话removeAtIndex()它不起作用,这是正确的.我只需要一个mutableCopy

简单地分配给var对我来说不起作用并且给' Immutable value of type [AnyObject]'

var toolbarItems = self.toolbar.items
toolbarItems.removeAtIndex(2) //Immutable value of type [AnyObject]
Run Code Online (Sandbox Code Playgroud)

我正在使用Beta 3

arrays ios swift

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

Underscore _.each回调完成后?

当下划线完成它的_.each循环时是否有回调因为如果我console log之后立即显然我用每个循环填充的数组不可用.这是一个嵌套_.each循环.

_.each(data.recipe, function(recipeItem) {
    var recipeMap = that.get('recipeMap');
    recipeMap[recipeItem.id] = { id: recipeItem.id, quantity: recipeItem.quantity };
});
console.log(that.get('recipeMap')); //not ready yet.
Run Code Online (Sandbox Code Playgroud)

javascript underscore.js

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

"Action"一词在使用Play框架的Scala函数定义中做了什么?

我正在开发Play应用程序,我刚开始使用Scala.我看到Action在下面的函数和大括号之前的等号之后有这个单词.

def index = Action {
  Ok(views.html.index("Hi there"))
}
Run Code Online (Sandbox Code Playgroud)

这段代码有什么作用?我已经看到它与def index = {大括号之前的单词一起使用但没有使用.

我假设函数的名称是index.但我不知道Action在这种情况下这个词是做什么的.

scala playframework

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

Zebra使用CSS将每两个TR连接在一起.

我想连续两行灰色/条纹.很难解释.这是一张图片::
| - ^ - ^ - ^ - ^ - ^ - |
| - ^ - ^ - ^ - ^ - ^ - |
| ------------- |
| ------------- |
| - ^ - ^ - ^ - ^ - ^ - |
| - ^ - ^ - ^ - ^ - ^ - |
| ------------- |
| ------------- |
| - ^ - ^ - ^ - ^ - ^ - |
| - …

css css-selectors css3

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

你如何在Swift中检索对象的类型?

我似乎无法找到一个返回Swift中对象类型的函数或方法.

如何在Swift中检索对象的类型或类?

我尝试使用Obj-C类,这显然不起作用.

在python中你有像type或者的东西isinstance

在Javascript中你有 constructor

swift

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

Watchkit中的SPErrorGizmoInstallNeverFinishedErrorMessage

我正在运行一个使用应用程序组的watchkit应用程序,我似乎无法让它运行.每当我尝试运行应用程序时,我都会收到一条警告,上面写着"SPErrorGizmoInstallNeverFinishedErrorMessage".我的扫视控制器中的代码相对较短.

let sharedGroupName = NSBundle.mainBundle().objectForInfoDictionaryKey("Shared Group") as! String

var sharedDefaults:NSUserDefaults!

override func willActivate() {

    super.willActivate()

    sharedDefaults = NSUserDefaults(suiteName: sharedGroupName)

    var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)

}

func update() {

    println(sharedDefaults?.valueForKey("timeMessage") as! String)

}
Run Code Online (Sandbox Code Playgroud)

我的ViewController.swift中的代码也很短,也只是设置此共享默认对象:

let sharedGroupName = NSBundle.mainBundle().objectForInfoDictionaryKey("Shared Group") as! String
var sharedDefaults:NSUserDefaults!
sharedDefaults?.setObject(timeMessage.text, forKey: "timeMessage")
sharedDefaults?.synchronize()
Run Code Online (Sandbox Code Playgroud)

此错误阻止我运行任何watchkit应用程序.不是主应用程序或一瞥或通知.我有一个在info.plist中列出的应用程序组.我有一个自定义构建设置到应用程序组名称.任何帮助将不胜感激.

ios swift watchkit

10
推荐指数
5
解决办法
3163
查看次数