草庐IT

ios - 框架中的 Swift 协议(protocol)

所以我有一个奇怪的问题,过去几个小时一直困扰着我。我有一个框架,我在其中创建了一个名为ChatDelegate的协议(protocol)(代码如下)publicprotocolChatDelegate:class{funcchat(_chatCollectionView:UICollectionView,didSelectmessage:Message)}和一个ViewController(不在框架中),它符合ChatDelegate,就像这样extensionChatContainerViewController:ChatDelegate{funcchat(_chatCollecti

ios - swift 3 游戏中心 : number of participants are always 4

我制作了一款与Swift2完美配合的回合制游戏。我可以成功地将代码更改为swift3.2并更正所有关于400的错误,但是游戏中心有一个问题我不知道如何修复它。当通过gamecenterviewcontroler我将参与者的数量设置为“2Player”然后按下“邀请friend”时,我获得的玩家数量是4而不是2!gamecenter发送短信给下一个参与者,参与者数量也是4。这当然会影响程序的其余部分,这是我在Swift2中没有的问题。这是我的代码的一部分:funcjoinTurnBasedMatch(){letrequest=GKMatchRequest()request.minPlay

ios - swift 4 "This class is not key value coding compliant"

我有一个Swift库,它严重依赖obj.valueForKey()中的NSObject。迁移到Swift4后,我发现这些调用总是崩溃并出现错误“此类不是键的键值编码兼容的...”,除非我正在寻找的属性是用@objc声明的。现在是否必须使用@objc声明属性才能使用此方法找到它们?有替代方案吗? 最佳答案 当您执行迁移时,Xcode询问了@objc推断,您可能选择了新类型而不是Swift3。可能的解决方案:使用@objc根据需要在每个方法上使用@objc而不是整个类。使用@objcMembers你可以在类上使用@objcMembers

ios - 如何使用 swift3 从 ios 设备触发 firebase 的推送通知

我是新的iOS开发者。我正在使用firebase,我正在尝试制作一个聊天应用程序,我需要在用户收到任何消息时通知他/她。为此,我尝试了firebase推送通知,但无法在其他用户发送消息时触发它们。我发现的唯一方法是使用firebase控制台发送推送通知,但它不能满足我的要求。我刚刚配置了本地通知。请指导我如何在不使用firebase控制台的情况下触发推送通知。 最佳答案 苦苦挣扎了将近1个月,终于找到了解决办法。这些是基本步骤首先确保您拥有一个活跃的苹果开发者账户只需启用firebase推送通知hereiethelinkofyout

ios - 完美的 Swift3 Boing

为栏打开设置动画...@IBOutletvarbarHeight:NSLayoutConstraint!barHeight.constant=barShut?30:100self.view.layoutIfNeeded()t=!barShut?30:100UIView.animate(withDuration:0.15,delay:0,options:UIViewAnimationOptions.curveEaseOut,animations:{()->Voidinself.barHeight.constant=tself.view.layoutIfNeeded()},completi

iOS Swift Firebase发送不规则数据

我有一个CollectionView,并且正在获取Firebase数据库数据。我的CollectionView创建sendfirebaseindexpath.row。第0、1、2、3行,但是firebase响应不规则数据,请参见debugmodindexpath.16、3、7、11...问题是什么?我分享我的示例代码。funccollectionView(_collectionView:UICollectionView,cellForItemAtindexPath:IndexPath)->UICollectionViewCell{print(indexPath.row)//1,2,3,4sel

在设置UI时,Swift在“ Init”中看似奇怪的行为

在里面requiredinit我的UIView继承类,我正在尝试初始化成员变量,然后使用来自成员变量的数据(即文本)设置视图的子视图。考虑以下伪代码,该伪代码成功地使用变量的数据加载UI:classEvent{vartitle:String?}classA:UIView{letevent:Event!{didSet{self.title_label.text=event.title}}requiredinit(event:Event){super.init(frame:CGRect(...))self.setupUI(with:event)}funcsetupUI(withevent:Even

ios - messageComposeViewController 消除崩溃 swift 3

在我的应用程序上,我通过短信发送警报。我尝试打开一个新的ViewController作为模态,并在其中发送了警报。但是,当发送短信或用户单击取消按钮时,messageComposeViewController不会关闭,并会崩溃。xcode日志中的错误是:(lldb)这是我用来发送警报的代码:importUIKitimportCoreLocationimportSocialimportMessageUIimportBRYXBannerclassAlertInProgressViewController:UIViewController,MFMessageComposeViewContro

IOS 11/"Apps-prefs=root"功能在更新到 Swift 3 后不工作

我对Swift编程还很陌生我制作了一个简单的测试应用程序,可以通过特定按钮以编程方式打开设置。不幸的是,更新按钮后,没有打开所需的设置页面(在本例中为wifi页面),只打开了通用设置屏幕有人可以帮助我了解swift4中到底发生了什么变化,以便我修复此行为吗?非常感谢!使用的第一个代码-(我已经将可用的iOS更改为iOS11.0,以匹配部署)ifleturl=URL(string:"App-Prefs:root=WIFI"){ifUIApplication.shared.canOpenURL(url){if#available(iOS10.0,*){UIApplication.share

Swift:在UicollectionView的正确部分中加载单元格?

我将同一类型的两个对象加载到两个单独的数组中。第一个数组是类型[Post],以及第二个数组。我的CollectionView中有两个部分,我想将第一个数组加载到第一部分,将第二个数组加入第二部分。我正在从Firebase获取数据,并将对象附加到数组中。在我的numberOfItemsInSection我正在检查该部分是否等于一个,第一个加载,以及该部分等于两个,请加载第二个。这可以正常工作,但问题在于,它仅在每个部分中加载正确的单元格数量,但不加载正确的信息。它只是从第一个数组加载了先前获取的数据。我该如何解决?谢谢...classProfileController:UICollectionV