草庐IT

range-init

全部标签

ios - 没有 "Index out of Range"swift 的实时重新加载 UITableview

我试图每秒重新加载我的表格View。我现在拥有的是重新加载tableview对象,但由于我在重新加载之前清除了Order数组,它因索引超出范围而崩溃。这是我当前的代码varorders=[Order]()overridefuncviewDidLoad(){super.viewDidLoad()//tablestufftableview.dataSource=selftableview.delegate=self//updateordersvartimer=Timer.scheduledTimer(timeInterval:4,target:self,selector:"GetOrder

swift - 在不调用 init(fileNamed :"") 的情况下从文件加载 SKScene 的方法

如标题所述,是否有任何方法可以调用以从文件(.SKS)加载SKScene而无需调用init(fileNamed:"...")方法? 最佳答案 你可以这样做:floatscreenWidth=[UIScreenmainScreen].bounds.size.width;floatscreenHeight=[UIScreenmainScreen].bounds.size.height;GameScene*scene=[[GameScenealloc]initWithSize:CGSizeMake(screenWidth,screenHe

cocoa - 使 Swift 类符合需要 init 的协议(protocol)

我在Swift中有以下协议(protocol):protocolFooConvertible{typealiasFooTypeinit(foo:FooType)}我可以让Swift类在类定义中符合它:classBar:FooConvertible{varbaz:String=""requiredinit(foo:String){baz=foo}}到目前为止一切顺利。但是,当我尝试在扩展中使一个类符合它时,问题就出现了(对于Cocoa类,这是我唯一的选择,因为我没有源代码):classBaz{varbaz=""}extensionBaz:FooConvertible{requiredco

swift - 模拟 UNNotificationResponse 和 UNNotification(以及其他带有 init() 标记为不可用的 iOS 平台类)

我需要模拟UNNotificationResponse和UNNotification以便我可以测试我的实现:funcuserNotificationCenter(_center:UNUserNotificationCenter,didReceiveresponse:UNNotificationResponse,withCompletionHandlercompletionHandler:@escaping()->Swift.Void)但是我不能有用地子类化这些类,因为init()被特别标记为unavailable,如果我尝试会导致这样的编译错误:/Path/to/PushClientT

init 中的 Swift 通用约束

我有通用的,我希望能够用特定的约束来初始化它。约束仅用于初始化。类其他人不在乎。这是一个简化的示例:structGeneric{letcompare:(T,T)->Boolinit(data:[T]){lethandler:(T,T)->Bool={$0==$1}compare=handlerinsert(data)}init(compareHandler:(T,T)->Bool,data[T]){compare=self.compareHandlerinsert(data)}}您可以看到有两个初始化器。第二个显然工作正常。但是,在第一个本地类型中T与结构的通用类型不匹配。因此,例如,

swift - public init中的问号是什么意思?(coder aDecoder : NSCoder)?

我不认为publicinit?(coderaDecoder:NSCoder)中的问号是关于可选项的。此外,当我覆盖它时,我发现我根本不需要写问号。那么这到底是什么意思呢?---更新---下面的评论帮助我弄明白了。它被称为“可失败的初始化程序”。另一个可以使概念更容易理解的例子是UIFont的便利初始化,因为UIFont可能不存在。public/*notinherited*/init?(namefontName:String,sizefontSize:CGFloat) 最佳答案 它被称为可失败初始化器。在TheSwiftProgram

ios - 使用 "init"或 "didmove"的正确方法是什么?

语言:Swift3.0---IDE:Xcode8.0beta2---项目:iOS游戏(SpriteKit)我为iOS创建了一个游戏,我知道Apple在接受应用程序/游戏方面非常严格。所以我想知道设置游戏的正确方法是什么。我从谷歌那里学到了创建一个新的SpriteKit项目并进行以下设置:在GameViewController.swift中清除viewDidLoad()并添加所有这些:overridefuncviewDidLoad(){super.viewDidLoad()letskView=self.viewas!SKViewletscene=GameScene(size:skView

ios - 属性 'self.title' 未在快速调用 super.init 时初始化

这个问题在这里已经有了答案:ErrorinSwiftclass:Propertynotinitializedatsuper.initcall(12个答案)关闭6年前。我有一个派生自UIView的类,但我初始化它时总是显示错误“Property'self.title'notinitializedatsuper.initcallinswift”这是我的代码classA:UIView{vartitle:StringvarrecordUrl:Stringvarcontent:Stringrequiredinit?(coderaDecoder:NSCoder){fatalError("init(

ios - 参数类型 'Range<Int>' 不符合预期类型 'Sequence' Swift3

嗨,我在Swift3之后遇到错误。我该如何解决这个错误?这些方法提供不重复的随机数。funcuniqueRandoms(_count:Int,inRangerange:Range,blacklist:[Int]=[])->[Int]{varr=[Int](range).filter{!blacklist.contains($0)}.shuffle()returnArray(r[0..Array{varnewArray=selfforiin0..谢谢 最佳答案 使用range的lowerBound和upperBound属性为[Int]

swift - iOS : Ambiguous Use of init(CGImage)

我正在尝试将CGImage转换为CIImage;但是,它不起作用。这行代码:letpersonciImage=CIImage(CGImage:imageView.image!.CGImage!)抛出以下错误Ambiguoususeof'init(CGImage)'我真的很困惑这个错误是什么意思。我需要进行此转换,因为内置CoreImage框架中的CIDetector.featuresInImage()需要一个CIImage 最佳答案 我自己解决了。事实证明,我错误地将CGImage大写。代码应该真的是:letpersonciImag