草庐IT

range-init

全部标签

ios - Swift - XCode6 beta5 每个类都需要 init(coder)

这个问题在这里已经有了答案:Classdoesnotimplementitssuperclass'srequiredmembers(4个答案)关闭8年前。在最新的XCode6beta(5)中,我注意到我的应用程序中几乎每个类都报错:类没有实现其父类(superclass)的必需成员例如:importUIKitlet_sharedAPIManager=APIManager(baseURL:NSURL.URLWithString(API_URL))classAPIManager:AFHTTPSessionManager{classvarsharedInstance:APIManager{r

ios - 自定义 UIControl 中的帧大小和 'required init(coder: NSCoder)'

我有一个自定义UIControl,我实现为:requiredinit(coder:NSCoder){super.init(coder:coder)initSubComponents()}funcinitSubComponents(){//DisplayUIControlborderforvisualdebuggingself.layer.borderColor=UIColor.redColor().CGColorself.layer.borderWidth=3.0subviewContainer=UIView(frame:self.bounds.rectByInsetting(dx:0

iOS/Swift - 无法在 Init() 上设置枚举值

我创建了SKSpriteNode类的扩展。我正在制作砖block对象,当它们被击中时会有不同的行为importSpriteKitclassBrick:SKSpriteNode{enumtype{caseNone,Green,Yellow,Orange,Red}staticletcolorMap=[Brick.type.Green:UIColor.greenColor(),Brick.type.Yellow:UIColor.yellowColor(),Brick.type.Orange:UIColor.orangeColor(),Brick.type.Red:UIColor.redCol

swift - 在 Swift 中,如何为 init 的实现创建类值而不是调用现有 init 的类创建便利的 init

我觉得答案很明显,但我一直无法弄清楚,这对我来说似乎是一个反复出现的问题。基本上我想做这样的事情:extensionNSData{convenienceinit(JSONObject:AnyObject){do{self=tryNSJSONSerialization.dataWithJSONObject(JSONObject,options:[])}catch{self=nil}}}但是它不会让我简单地为self赋值。我一直用枚举来做这件事,但它不允许我用类来做。有没有什么方法可以使用在初始化器实现中创建的类的实例来实现方便的初始化器? 最佳答案

Swift:在初始化程序中多次调用 Self.init

这个让我难住了。我不明白为什么Swift提示self.init在这段代码中被多次调用:publicinit(body:String){letparser=Gravl.Parser()ifletnode=parser.parse(body){super.init(document:self,gravlNode:node)}else{//Swiftcomplainswiththementionederroronthisline(itdoesn'tmatterwhat"whatever"is):super.init(document:self,gravlNode:whatever)}}除非我

arrays - 如何在 swift 3/4 中使用 range.map?

我有下面的代码,它适用于swift2.3。我正在努力了解如何将其转换为swift3/4-这就是问题所在Valueoftype'Range'hasnomember'map'letgrainSize=CGFloat(0.01)letmin=CGFloat(-3)letmax=CGFloat(3)letrange=Range(uncheckedBounds:(lower:Int(min/grainSize),upper:Int(max/grainSize)))letlol=NSRange(range)varpoints=range.map{step->CGPointinleti=grainS

ios - 自定义 UIView 初始化程序的便利初始化程序必须使用 self.init 错误进行委托(delegate)

我正在尝试为UIView创建自定义初始化方法,如下所示:convenienceinit(frame:CGRect,tutorProfileImageURL:String?){self.tutorProfileImageURL=tutorProfileImageURLsuper.init(frame:frame)}overrideinit(frame:CGRect){super.init(frame:frame)setup()}requiredinit?(coderaDecoder:NSCoder){super.init(coder:aDecoder)setup()}funcsetup(

ios - 在 Swift 的 Singleton 类中防止实例来自 init() 的最佳实践是什么

我从UsingSwiftwithCocoaandObjective-C中了解到可以像这样创建单例:classSingleton{staticletsharedInstance=Singleton()}但是据我了解,我们还应该阻止从构造函数创建的实例。应该避免在类范围之外创建类Singleton的实例,如下面的语句:letinst=Singleton()那么,我可以这样做吗:classSingleton{staticletsharedInstance=Singleton()privateinit(){}}或者,有什么更好的做法吗? 最佳答案

ios - Swift 中的惰性属性等同于 Objective C 中的惰性 Init getter

Swift中的lazy属性是否等同于在ObjectiveC中使用延迟加载模式覆盖getter? 最佳答案 来自文档:Alazystoredpropertyisapropertywhoseinitialvalueisnotcalculateduntilthefirsttimeitisused.Youindicatealazystoredpropertybywritingthelazyattributebeforeitsdeclaration.所以,大多数情况下,是的。Youmustalwaysdeclarealazypropertya

swift - 无法形成 Range with end < start 在执行 for 循环之前检查范围?

我遇到了swift代码的变化,我不太明白。vararr=[]forvari=1;i我有一个程序可以获取一个结果数组,该数组也可以为空。这对于上面的for循环是没有问题的。现在苹果要我把代码改成下面这样。但如果数组为空,这将崩溃。vararr=[]foriin1...arr.count{print("iwanttoseethei\(i)")}我真的必须先检查范围再做循环吗?vararr=[]if(arr.count>=1){foriin1...arr.count{print("Iwanttoseethei\(i)")}}是否有更智能的解决方案? 最佳答案