草庐IT

material-swift

全部标签

swift - 具有通用协议(protocol)类型变量的通用协议(protocol)

我如何创建一个通用协议(protocol),它具有另一个通用协议(protocol)的类型?在我的示例中,我有一个堆,它是一个通用类型的协议(protocol),因为我的堆中可以有任何符合Comparable协议(protocol)的元素。所以在我的priorityQueue中,我也想将其作为协议(protocol)(为了避免代码重复和练习)我希望我的priorityQueue包含一个堆,其中Heap.T等于PriorityQueue.Item,但我不不知道该怎么做。有什么想法吗?当然我可以用“抽象类”来做到这一点,但这不是这里的重点。顺便说一句,下面的代码甚至无法编译代码:publi

swift - 蛇在垂直方 block 中移动

我正在尝试使用SpriteKit制作蛇游戏(就像旧诺基亚手机中的游戏)。问题是,当蛇的方向改变时,蛇在一个静止的垂直block中移动,并没有得到L形(如图所示)。为了进入上下文,我有一个名为SKDSpriteNode的类,它与SKSpriteNode相同,但有一个额外的direction属性;Snake类有direction和length属性。有一个snakeBody属性,类型为[SKDSpriteNode],包含蛇体的节点。蛇的方向在游戏开始时分配给.up,然后由用户的滑动分配。顺便说一句,changeDirection方法在蛇的方向改变时被调用(使用didSet)。这是代码和图片:

具有可选数组的 Swift 4 自定义通用结构表现奇怪吗?

我正在将一个更大的代码库迁移到Swift4。它包括一个实现矩阵的自定义类型。在Swift3.1中,一切都按预期运行良好。我能够将问题减少到两个小代码块。第一个定义结构:structMatrix{vararray:[Element?]=[]mutatingfuncsetup(repeatedValue:Element){letfooTemp=Array(repeating:repeatedValue,count:10)self.array=fooTemp}}当我添加Sequence时,问题本身就来了实现:extensionMatrix:Sequence{typealiasIterator

swift - 注销后 AWSCognito 登录被阻止 1 次 - "Obtaining an identity id in another thread failed or didn' t 在 5 秒内完成。”

我尝试在CognitoController单例类中实现所有CognitoSignUp/Confirm/SignInStuff。我认为我的问题可能基于两个函数:第一个函数是重新建立session并从我的主视图Controller调用,它接收回调然后继续初始化session或显示signInViewController:funchandleSignInToExistingSession(){ifAWSIdentityManager.default().identityId!=nil{ifAWSFacebookSignInProvider.sharedInstance().token().r

Linux 上的 Swift 工具链位置

我正在考虑在Ubuntu16.04服务器上运行Swift。但是我想确定我应该在哪里安装工具链。来自swift.org:IfyouinstalledtheSwifttoolchainonLinuxtoadirectoryotherthanthesystemroot,youwillneedtorunthefollowingcommand,usingtheactualpathofyourSwiftinstallation...然后从Kitura'sSettingUp说明:Afterextractingthe.tar.gzfile,updateyourPATHenvironmentvariab

ios - 为什么 swift 协议(protocol)使用 func 重载而不是在具有不同名称的 func 上?

刚开始学swift,注意到协议(protocol)UICollectionViewDelegate(https://developer.apple.com/documentation/uikit/uicollectionviewdelegate)有大约20个同名但参数不同的函数。在C#中,我们也使用重载,但我们使用它们以防我们想要做类似的事情,例如:获取用户(intid)GetUser(字符串用户名)但在swift中,我们对做完全不同事情的函数使用相同的函数名称,例如:funccollectionView(UICollectionView,didSelectItemAt:IndexPa

swift - 如何使用 SpriteKit 方法主体(位于 : CGPoint)?

我有一个游戏,在游戏过程中你的手指会四处移动,应该避免碰到一些障碍物。我知道如何使用碰撞,但我最近听说有一个名为body(at:point)的函数。我应该说我已经掩盖了我的障碍。因此,我无法使用contains(point)函数。我真的很想使用body(at:point)函数,否则我知道如何处理碰撞。我的一些代码:play_button=self.childNode(withName:"play_button")as!SKSpriteNodefortintouches{letfingerlocation=t.location(in:self)ifphysicsworld.body(at

swift - NSOpenPanel继承与 "designated initializer"

我是swift的新手,来自C++,没有Obj-C的背景,我找不到一个小问题的优雅解决方案...我使用NSOpenPanel来检索一些文件url。我的代码看起来像这样:letimport_panel=NSOpenPanel()import_panel.allowsMultipleSelection=true;import_panel.canChooseDirectories=false;import_panel.canCreateDirectories=false;import_panel.canChooseFiles=true;letimport_panel_delegate=Impo

iOS Swift 库 - 目标具有传递依赖性 Google Analytics

我正在尝试在podspec中的lib项目中安装“Google/Analytics”。我的项目库是使用podlibcreate和Swift创建的。这是我的podspec:s.source_files='Pod/Classes/**/*'s.resource_bundles={'LibPSLoginResources'=>['Pod/Resources/**/*.{xib,png,json}']}s.dependency'FBSDKCoreKit's.dependency'FBSDKLoginKit's.dependency'Google/Analytics's.dependency'Fi

swift - #selector 在 Swift 4 中不起作用?

这个问题在这里已经有了答案:HowcanIdealwith@objcinferencedeprecationwith#selector()inSwift4?(5个答案)关闭5年前。我正在尝试使用Swift4在Xcode9中设置一个计时器,并且我有一个名为:hello的函数。所以在计时器代码中,我像以前一样添加了#selector(hello()),但是这次它会继续崩溃并让我在hello函数前面添加@objc。有谁知道那是什么意思?谢谢!