草庐IT

ios - Swift 3 UITapGestureRecognizer 没有收到水龙头

我想在我的其中一个View中添加一个手势识别器来检测点击,这是我的代码:classDateTimeContainer:UIView,UIGestureRecognizerDelegate{overridefuncawakeFromNib(){letgesture=UITapGestureRecognizer(target:self,action:#selector(self.onTap))gesture.delegate=selfself.addGestureRecognizer(gesture)}funconTap(_gestureRecognizer:UITapGestureRec

swift - 符合返回 "Self"的静态函数

当尝试符合NSItemProviderReading时,出现以下错误:该方法的协议(protocol)定义如下:publicstaticfuncobject(withItemProviderDatadata:Data,typeIdentifier:String)throws->Self协议(protocol)静态函数返回类型“Self”,我试图将其更改为实际类的名称,但它不再符合NSItemProviderReading。如何返回“self”?更新:这是当我要求Xcode修复它时发生的情况:它追加为!自己,但随后显示2个错误和此警告,它看起来令人困惑,因为它似乎想恢复到以前的状态,在这

ios - AVCaptureVideoPreviewLayer 的比例

我目前正在我的Swift应用程序中处理QR扫描View。我想将VideoPreview置于View中间。View看起来像这样:View(白色)称为ScanView,我想让图像预览与ScanView大小相同并将其居中。代码片段:感谢您的帮助! 最佳答案 这是一个可行的解决方案:importUIKitimportAVFoundationclassViewController:UIViewController,AVCaptureVideoDataOutputSampleBufferDelegate,AVCaptureMetadataOut

swift - 将 [unowned self] 添加到闭包参数 Swift

我有一个带有完成处理程序的函数,返回一个或多个参数。在客户端中,当执行完成处理程序时,我希望有一个unowned对self的引用,以及对传递的参数的访问权。这是说明问题和我要实现的目标的Playground示例。importUIKitstructStruct{funcfunction(completion:(String)->()){completion("Boom!")}funcnoArgumentsFunction(completion:()->Void){completion()}}classClass2{funcexecute(){Struct().noArgumentsFun

swift - NSKeyValueObservation observe() 闭包中是否需要弱 self ?

我有:privatevarstatusLabel:UILabel!privatevarerrorObserver:NSKeyValueObservation?self.errorObserver=self.viewModel.observe(\.errorString){[weakself](viewModel,change)inself?.statusLabel.text=viewModel.errorString}这里需要[weakself]吗? 最佳答案 简短回答:是的,您确实需要[weakself]。不必在deinit中显式

AI人机对战五子棋游戏【Python(pygame)+AI】并实现软件输出

注意:本篇文章是基于清华大学出版社,陈强教授编写的《Python项目实战开发》一书来行文的,具体有写的不清楚的地方,建议参考陈强教授写的具体内容,若写的有错误的地方,欢迎大家及时指出,更改。同时,本文适用于有一定Python基础的同学阅读学习,能够理解一定的算法思想。对于pygame模块不是很清楚的可以参考文章点击这里目录1.系统架构分析1.1五子棋的基本棋型1.2功能模块2.具体实现2.1设置基础参数2.2绘制棋盘2.3编写函数intoNextTurn()2.4编写函数getLocate()2.5编写函数getIdex()2.6编写函数isInside()2.7编写函数isEmpty()2.

swift - 'let' 属性不能直接初始化;使用 "self.init(...)"或 "self = ..."代替

我想尝试在protocol扩展中编写一个默认的init,所以我这样做了:protocolP{vardata:[AnyHashable:Any]{get}init(_s:String)}extensionP{init(_s:String){self.data=["s":s]}}但是我收到了这个错误:'let'property'data'maynotbeinitializeddirectly;use"self.init(...)"or"self=..."instead我不知道这是什么意思。感谢您的帮助! 最佳答案 该错误表明该变量无法在

swift - UIAlertController 在某些情况下不会被解雇

在我的项目中,将对视频进行处理,然后经过一些效果后播放。在处理视频时,我想显示Pleasewait...消息。我使用UIAlertController显示警报,在完成该过程后我想隐藏警报。如果视频处理正确,警报将被dismissed,但在某些情况下,处理失败的dismiss也将不起作用!请注意,dismiss函数将被调用,但它不起作用。此外,我使用VGPlayer播放视频。classVGViewController:UIViewController{varplayer:VGPlayer?varurl:URL?varoutputVideo:URL?overridefuncviewDidL

选择显示键盘的单元格时,iOS TableView 的 indexPath 错误

我有tableView大小由AutoLayout设置(底部到底部布局指南,顶部到另一个View等等,但首先是UISearchBar到顶部布局指南):带有tableView的Controller:我需要在显示键盘时更改表格偏移量,所以我有以下两种方法://MARK:-KeyboardfunckeyboardWasShown(notification:NSNotification){letinfo:NSDictionary=notification.userInfo!letvalue:NSValue=info.valueForKey(UIKeyboardFrameBeginUserInfo

ios - SWIFT - LocationManager 循环多次?

我有一个locationManager函数来获取用户的当前位置并发布城市和州的名称。我有一个打印语句,所以我可以检查我的控制台是否一切正常……确实如此。但是,它打印了3次城市位置。这实际上会导致我的实际应用程序出现问题,但这超出了这个问题的重点。我的函数如下:varusersLocation:String!varlocationManager:CLLocationManager!funclocationManager(manager:CLLocationManager,didUpdateLocationslocations:[CLLocation]){letuserLocation:C