小编Cri*_*tik的帖子

如何在Swift中声明一个弱引用数组?

我想在Swift中存储一组弱引用.数组本身不应该是弱引用 - 它的元素应该是.我认为Cocoa NSPointerArray提供了非类型安全版本.

weak-references automatic-ref-counting nspointerarray swift

171
推荐指数
10
解决办法
3万
查看次数

如何在Swift中删除视图的所有子视图?

我正在寻找一种简单的方法来立即从超视图中删除所有子视图,而不是逐个删除它们.

//I'm trying something like this, but is not working
let theSubviews : Array = container_view.subviews
for (view : NSView) in theSubviews {
    view.removeFromSuperview(container_view)
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

UPDATE

我的应用有一个主要的container_view.我必须添加不同的其他视图作为子视图,container_view以提供一种导航.

因此,当单击按钮以"打开"特定页面时,我需要删除所有子视图并添加新视图.

更新2 - 工作解决方案(OS X)

我猜Apple修了它.

现在比以往任何时候都更容易,只需致电:

for view in containerView.subviews{
    view.removeFromSuperview()
}
Run Code Online (Sandbox Code Playgroud)

macos view swift

159
推荐指数
11
解决办法
13万
查看次数

Swift performSelector:withObject:afterDelay:不可用

我在Objective C中有一个应用程序,我正在转换到Swift.在Objective C中,我有这个方法:

[self.view performSelector:@selector(someSelector) withObject:self afterDelay:0.1f];

我正在使用Swift,我无法弄清楚如何做到这一点.我试过了:

self.view.performSelector(Selector("someSelector"), withObject: self, afterDelay: 0.1)

这是我得到的错误: 'performSelector' is unavailable: 'performSelector' methods are unavailable

我会用什么电话来调用方法afterDelay

UPDATE

这是我最终得到的:

extension NSObject {

    func callSelectorAsync(selector: Selector, object: AnyObject?, delay: NSTimeInterval) -> NSTimer {

        let timer = NSTimer.scheduledTimerWithTimeInterval(delay, target: self, selector: selector, userInfo: object, repeats: false)
        return timer
    }

    func callSelector(selector: Selector, object: AnyObject?, delay: NSTimeInterval) {

        let delay = delay * Double(NSEC_PER_SEC)
        let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
        dispatch_after(time, dispatch_get_main_queue(), {
            NSThread.detachNewThreadSelector(selector, toTarget:self, withObject: object) …
Run Code Online (Sandbox Code Playgroud)

objective-c ios swift xcode6

133
推荐指数
3
解决办法
11万
查看次数

什么"协议......只能用作通用约束,因为它具有自我或相关的类型要求"是什么意思?

我试图在Swift中创建一个自定义协议的字典(实际上是一个HashSet),但是它给了我标题中的错误:

协议'myProtocol'只能用作通用约束,因为它具有Self或相关类型要求

我无法做出头脑或尾巴.

protocol Observing: Hashable { }

var observers = HashSet<Observing>()
Run Code Online (Sandbox Code Playgroud)

generics swift xcode6 swift-protocols

115
推荐指数
2
解决办法
4万
查看次数

如何计算两个日期之间的差异?

如何计算2010年1月1日至(例如)2010年2月3日之间的天数?

date objective-c nsdate swift

109
推荐指数
4
解决办法
11万
查看次数

如何在UIView中加载xib文件

我到处都在搜索,到目前为止没有什么对我有用.

基本上我想要一个名为rootView.xib的.xib文件,在其中我希望有一个UIView(让我们称之为containerView)只占用屏幕的一半(因此会有常规视图和新视图).然后我想要一个名为firstView.xib的不同.xib文件并将其加载到containerView中.所以我可以在firstView.xib上有一堆东西和rootView.xib中的一堆不同的东西,并在rootView.xib中加载我的firstView.xib在containerView中,但由于它只占用了屏幕的一半,你仍然可以看到rootView.xib上的东西

objective-c xib uiview ios

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

Swift make方法参数是否可变?

如何在不创建其他变量的情况下处理此错误?

func reduceToZero(x:Int) -> Int {
    while (x != 0) {
        x = x-1            // ERROR: cannot assign to 'let' value 'x'
    }
    return x
}
Run Code Online (Sandbox Code Playgroud)

我不想创建额外的变量来存储x的值.甚至可以做我想做的事情吗?

syntax immutability mutability swift

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

为什么 print("...")(即连续三个点)打印出空白?

我想连续打印三个点(以形成省略号),但 print() 打印空白。

\n
print("one moment...")\none moment...\nprint("...")\n\nprint("..")\n..\nprint("...abc...")\nabc...\nprint("\\u2026")\n\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n

这里发生了什么事?为什么“...”以特殊方式解析?

\n

我在 PyCharm 中使用 ipython。

\n

python pycharm python-3.x

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

ios5 ARC什么是从ARC中排除文件的编译器标志?

任何人都可以帮我记住,告诉XCode不使用ARC进行某些文件的标志是什么?我的项目中有几个文件标记为这样......直到我添加了另一个文件并决定将其转换为ARC.听起来很简单吧?我希望我能够简单地检查一下我想要的文件并让XCode做到这一点.好吧,不是那么容易,在预先检查时它从文件中剥离了所有-Noarc标志,现在我需要手动将标志重新应用于多个文件.

这个故事的寓意是:一旦你的项目在ARC中并且你有一些标记为没有ARC的文件,不要从Refactor> Convert to ARC重新运行转换为ARC工具.即使预检失败,它也不会恢复您的设置.

compiler-construction ios5 xcode4.2 automatic-ref-counting

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

如何使php显示\ t \n作为制表符和换行符而不是字符

我试图将我的php文件中的数据输出为纯文本,我希望输出具有如下表格格式:

data1    data2    data3
1        a        b
2        c        d
....
Run Code Online (Sandbox Code Playgroud)

当我尝试这个:

foreach(...)
echo $data1 . '\t' . $data2 . '\t' . $data3 . '\n';
Run Code Online (Sandbox Code Playgroud)

它将它们打印为 data1\tdata2\tdata3\n...

我怎样才能获得php阅读\t以及\n标签和新行?

php character-encoding

36
推荐指数
3
解决办法
15万
查看次数