草庐IT

类类型的 Swift 数组,每个类类型都符合协议(protocol)并且是普通类的子类

我在Swift中有一个带有以下形式签名的方法:funcmyMethod(class:T.Type)whereT:SomeClass&MyProtocol我想要一个变量,它是一个类数组,这些类都是SomeClass的子类并且符合MyProtocol。它看起来像:letclassArray=[SubclassOfSomeClass.self,SubclassTwoOfSomeClass.self,SubclassThreeOfSomeClass.self]其中SubclassOfSomeClass、SubclassTwoOfSomeClass和SubclassThreeOfSomeClas

swift - 实例化子类在 Swift playgrounds 中有效,但使用类本身却不行

我更新了AudioKit的代码,现在playgrounds(在develop分支上)不能正常工作,在研究中我发现了一个奇怪的情况varoscillator=AKOscillator()产生崩溃,但只是使用该类的一个普通子类:classAKSubclassOfOscillator:AKOscillator{}varoscillator=AKSubclassOfOscillator()工作得很好。有人可以阐明这怎么可能发生吗?这个SwiftPlayground在Xcode10中运行/崩溃。应用程序中的类似代码不会崩溃,只会在playground内崩溃。这是日志Playgroundexecu

ios - UIStoryboardSegue 动画子类中的属性

我有一个UIStoryboardSegue子类,用于将当前ViewController替换为下一个ViewController。因为我们在界面编辑器中有一个Animates属性,我想在子类中访问这个属性。我的代码如下:classReplaceSegue:UIStoryboardSegue{overridefuncperform(){varviewControllers=source.navigationController?.viewControllers.dropLast()??[]viewControllers.append(destination)source.navigatio

swift - 为什么覆盖我的 SKSpriteNode 子类的位置变量会减慢速度?

在Scratch有一个很酷的函数叫做penDown这会导致您的Sprite在从A移动到B时在屏幕上描绘一条某种颜色的线。我想通过子类化SKSpriteNode来重新创建此行为。并在职位发生变化时收到通知。然而,这个简单的覆盖导致整个事情变慢了很多(只有两个Sprite时FPS从20下降到7):overridevarposition:CGPoint{get{returnsuper.position}set{super.position=newValue//AddthisnewpointtothebezierpathofthelinesothatIcantraceit.}}为什么会这样?

ios - SWIFT 如何创建一个 NSCoding 子类并从另一个类调用它?

我在NSCoding上发现了这段黑色代码,它几乎就是我想要的。我找到它的链接在下面。如何在其他类中创建NSCoding类和用户?下面的代码无效。我希望有人可以帮助我解决这个问题。importFoundationimportUIKitclassUser:NSObject,NSCoding{varname:Stringinit(name:String){self.name=name}requiredinit(coderaDecoder:NSCoder){self.name=aDecoder.decodeObjectForKey("name")asString}funcencodeWithC

ios - 使用子类 UIActivityItemProvider 时没有共享操作可用

当我只传入一个NSString时,一切正常,但是当我尝试传入我的自定义ItemProvider时,我没有获得可用的共享操作。MyCustomProviderclassMyCustomProvider:UIActivityItemProvider{varplaceholder:String!varalternate:String!init(placeholder:String,alternate:String){self.placeholder=placeholderself.alternate=alternatesuper.init()}overridefuncactivityView

ios - 如何从内存中删除子类 SKNode?

我在一个单独的Swift文件中创建了一个“SPriteKitButton”SKNode子类,用于在SpriteKit中制作自定义按钮类对象。我像这样初始化一个新按钮:self.homeButton=SpriteKitButton(buttonUnpressedImage:"homeUnpressed.png",buttonPressedImage:"homePressed.png",buttonName:"homeButton",scale:1,buttonAction:returnHome)self.addChild(homeButton)该按钮效果很好,但是当我使用presentS

ios - 创建 UICollectionViewController 子类并添加为 childviewcontroller

我是iOS开发新手。我想在两个具有相同UI的不同ViewController中创建collectionView。我只想创建一个UICollectionView并在不同的ViewController上重新使用它,而不是创建单独的collectionViews。我可以遵循的方法是创建UICollectionViewController子类并将其作为subviewController添加到我的ViewController上,但不确定这是否是正确的方法不知道addChildViewcontroller是如何工作的以及如何在subviewController和父ViewController之间传

swift - 子类节点,但想检测场景中的触摸

我有一个名为LocationNode的子类节点,它启用了触摸功能。看起来像这样。classLocationNode:SKSpriteNode,CustomNodeEvents{funcdidMoveToScene(){self.isUserInteractionEnabled=true}}我没有在这个子类文件中重写touchesBegan,因为我想在实际场景文件中像这样控制所有的触摸事件:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){lettouchLocation=touches.first!.location(i

ios - swift 。 Viewcontroller 知道子类

我有一个tableview单元格的子类。classprofileTableViewCell:UITableViewCell{@IBOutletweakvartableviewUsernameLabel:UILabel!@IBOutletweakvartableviewMessageLabel:UILabel!@IBOutletweakvartableviewTimeStamp:UILabel!}我需要在我的ViewController中访问这些标签。我该怎么做。我对编程相当陌生。-我在下面的标签上明显地看到“未解析的标识符”。我如何访问这些标签?-也尝试将cell.tableViewU