我想在Swift中存储一组弱引用.数组本身不应该是弱引用 - 它的元素应该是.我认为Cocoa NSPointerArray提供了非类型安全版本.
我正在寻找一种简单的方法来立即从超视图中删除所有子视图,而不是逐个删除它们.
//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) 我在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) 我试图在Swift中创建一个自定义协议的字典(实际上是一个HashSet),但是它给了我标题中的错误:
协议'myProtocol'只能用作通用约束,因为它具有Self或相关类型要求
我无法做出头脑或尾巴.
protocol Observing: Hashable { }
var observers = HashSet<Observing>()
Run Code Online (Sandbox Code Playgroud) 我到处都在搜索,到目前为止没有什么对我有用.
基本上我想要一个名为rootView.xib的.xib文件,在其中我希望有一个UIView(让我们称之为containerView)只占用屏幕的一半(因此会有常规视图和新视图).然后我想要一个名为firstView.xib的不同.xib文件并将其加载到containerView中.所以我可以在firstView.xib上有一堆东西和rootView.xib中的一堆不同的东西,并在rootView.xib中加载我的firstView.xib在containerView中,但由于它只占用了屏幕的一半,你仍然可以看到rootView.xib上的东西
如何在不创建其他变量的情况下处理此错误?
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的值.甚至可以做我想做的事情吗?
我想连续打印三个点(以形成省略号),但 print() 打印空白。
\nprint("one moment...")\none moment...\nprint("...")\n\nprint("..")\n..\nprint("...abc...")\nabc...\nprint("\\u2026")\n\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n这里发生了什么事?为什么“...”以特殊方式解析?
\n我在 PyCharm 中使用 ipython。
\n任何人都可以帮我记住,告诉XCode不使用ARC进行某些文件的标志是什么?我的项目中有几个文件标记为这样......直到我添加了另一个文件并决定将其转换为ARC.听起来很简单吧?我希望我能够简单地检查一下我想要的文件并让XCode做到这一点.好吧,不是那么容易,在预先检查时它从文件中剥离了所有-Noarc标志,现在我需要手动将标志重新应用于多个文件.
这个故事的寓意是:一旦你的项目在ARC中并且你有一些标记为没有ARC的文件,不要从Refactor> Convert to ARC重新运行转换为ARC工具.即使预检失败,它也不会恢复您的设置.
我试图将我的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标签和新行?
swift ×6
objective-c ×3
ios ×2
xcode6 ×2
date ×1
generics ×1
immutability ×1
ios5 ×1
macos ×1
mutability ×1
nsdate ×1
php ×1
pycharm ×1
python ×1
python-3.x ×1
syntax ×1
uiview ×1
view ×1
xcode4.2 ×1
xib ×1