草庐IT

ios - 如何通过在闭包中使用 self 来防止内存泄漏

我有下载文件的类(class):classFileDownloader{privateletdownloadsSession=URLSession(configuration:.default)privatevartask:URLSessionDownloadTask?privateleturl:URLinit(url:URL){self.url=url}publicfuncstartDownload(){download()}privatefuncdownload(){task=downloadsSession.downloadTask(with:url){[weakself](lo

ios - 在静态上下文中引用 'self'

我来这里是为了了解为什么我实现的解决方案不起作用。基本上我有一个名为MyClass的类,在这个类中我想从plist文件创建一个静态字典。像这样:classMyClass{staticvarmyDic:[String:String]=NSDictionary(contentsOfFile:Bundle(for:self).path(forResource:"filename",ofType:"plist")!)as![String:String]}如果我这样做,编译器会提示:Cannotconvertvalueoftype'(MyClass)->()->(MyClass)'toexpec

ios - 如何创建一系列函数并在 Swift 中循环它们?

我正在尝试构建一个功能,当您摇动iPhone时,屏幕上的粒子会飞来飞去。当摇晃开始和结束时,我有钩子(Hook)可以系上。我将创建一个UIPushBehavior并在摇晃开始时将其添加到动画场景中,当摇晃结束时我将从动画场景中移除UIPushBehavior。但为了获得良好的震动体验,我想在设备运动时改变插入角度。如何在Swift中重新创建此伪代码?overridefuncmotionBegan(motion:UIEventSubtype,withEventevent:UIEvent!){if(motion==UIEventSubtype.MotionShake){self.push=

ios - 如何使用 Swift 为从 Storyboard生成的 UIScrollView 创建一个 setter?

使用界面构建器,我将一个UIScrollView拖到我的ImageViewController上。我从ScrollView控制拖动到我的ImageViewController上以获得一个IBOutlet来控制scrollView。其中添加了代码:@IBOutletvarscrollView:UIScrollView现在我想在scrollView初始化后立即设置一个属性。在objective-c中,您可以编写此函数来实现它:-(void)setScrollView:(UIScrollView*)scrollView{_scrollView=scrollViewself.scrollVie

ios - iOS Swift 中的 CALayer 或 UIView?

任何人都可以向我指出解释为iOS添加View和图层的正确方法的教程或示例代码(或两者!)。最好是在Swift中而不是ObjC。我有自己添加SKNodes时有效的代码,没问题,但如果我添加一个渐变层-我希望它是背景中的天空,渐变覆盖其他所有内容。我尝试了各种形式的在上面的索引处添加子层等,但似乎没有任何效果。我想这是我对CALayer和UIView的基本理解。我找不到好的教程:(感谢任何帮助。干杯亚当。这是一个示例。View充满了渐变,这很好,但按钮似乎隐藏在下面,尽管试图将其强制置于背景层之上。importQuartzCoreclassNightScene:SKScene,SKPhys

arrays - 延迟遍历数组 - Swift

我试图遍历一个数组,一次点亮一种颜色,一旦完成遍历每个项目,调用另一个函数来运行。到目前为止我有这个://Delayfunctionfromhttp://stackoverflow.com/questions/24034544/dispatch-after-gcd-in-swift/24318861#24318861funcdelay(delay:Double,closure:()->()){dispatch_after(dispatch_time(DISPATCH_TIME_NOW,Int64(delay*Double(NSEC_PER_SEC))),dispatch_get_mai

ios - 在代码中设置 IBOutlet 的自动布局约束

如果我有一个IBOutlet的UILabel,为什么我不能在代码中设置它的自动布局约束,而不必在Storyboard中设置至少一个约束?例如,假设我有一个在Storyboard中没有设置约束的IBOutletUILabel,我尝试将它放在superview的中心:overridefuncviewDidLoad(){super.viewDidLoad()self.label.setTranslatesAutoresizingMaskIntoConstraints(false)self.label.centerInSuperview()}然后我有一个UIView扩展来处理自动布局代码如下:

ios - 允许来 self 的应用程序的用户 'Follow on Instagram' (Swift)

我想将用户的Instagram帐户连接到我的应用程序,并能够让他们在Instagram上关注其他用户(她/他选择的);或者至少触发Instagram应用程序并转到用户的个人资料。我目前正在使用Swift,那里的文档不是很清楚。真的可以做我想做的事吗?如果是这样,我该怎么做?预先感谢您的帮助。 最佳答案 这个函数将完成这项工作:如果没有安装instagramapp,那么它会在safari中打开instagram的网页。如果安装了该应用程序,它会在Instagram应用程序中打开您想要的页面:)funcopenInstagram(){v

swift - "if let"语句执行,尽管值为 nil

我有一个正在执行的“iflet”语句,尽管“let”部分为零。ifletleftInc:Double?=self.analysis.inputs[self.btnLeftIncisor.dictionaryKey!]!{println(leftInc)letvalueString:String=formatter.stringFromNumber(NSNumber(double:leftInc!))!self.leftIncisorTextField?.text=valueStringself.btnLeftIncisor.associatedLabel?.text=valueStri

swift - 不同的闭包在 swift 中为保留周期提供不同的结果

我正在阅读Apple的Swift编程语言指南。在闭包的强引用循环部分,我尝试了一种不同类型的闭包,但它没有给出预期的输出。classHTMLElement{letname:Stringlettext:String?lazyvarasHTML:String={//[unownedself]iniflettext=self.text{return"\(text)"}else{return""}}()init(name:String,text:String?=nil){self.name=nameself.text=text}deinit{println("\(name)isbeingdei