草庐IT

swift-block

全部标签

ios - Objective-C 项目中的 Swift pod

我的pod看起来像这样platform:ios,'8.1'pod'Masonry'pod'Parse'pod'SSKeychain'pod'Reachability'当我添加“podCharts”时,出现这样的错误[!]PodswritteninSwiftcanonlybeintegratedasframeworks;thisfeatureisstillinbeta.Add`use_frameworks!`toyourPodfileortargettooptintousingit.TheSwiftPodbeingusedis:Charts如果我将podfile更新为:platform:

ios - 如何实现通用的 do-try-catch block 以捕获操作中抛出的所有错误

在Swift3.0中,如何实现通用的do-try-catchblock来捕获操作引发的所有错误。Apple文档说要实现类型为ErrorType的枚举器,它列出了抛出的错误。假设如果我们不知道操作会抛出什么样的错误,那么如何实现它。以下代码仅用于说明目的。在这里我可以捕捉到错误,但我不知道是什么导致了这个错误。在objective-c中,我们可以得到错误发生的确切原因,但在这里我们只得到我们分配给它的信息。enumAwfulError:ErrorType{caseCannotConvertStringToIntegertypecasegeneral(String)}funcConvert

ios - 如何获取 block 内变量的值

有没有办法用completionHandler检查“type”变量的值。-(void)sendApiMethod:(NSString*)apiNameApiType:(NSString*)type{[SendAPIsetAPIWithName:@"APIName"completionHandler:^(NSArray*errors){if([typeisEqualToString:@"Login"]){///CallSomeOtherfunction}}];} 最佳答案 我写了一小段代码来验证是否有效(只读你的问题我会说是作为Dro

Xcode 8/Swift 3 中的 iOS 异步单元测试(waitForExpectations 失败)

我正在更新我为使用Swift3而开发的Cocoapod。在我升级之前,我所有的异步单元测试都运行良好。但是现在升级后,每一个都立即失败,我不知道为什么。以下是每个结构的结构:overridefuncsetUp(){super.setUp()validationExpectation=expectation(description:"Validation")}...functestSymbolRequest(){_=MyCocoapod.makeSymbolRequest(symbol:"ABC",success:{(symbolObject)inself.validationExpec

ios - 在 iOS 中使用 WkWebView 和 Swift 不显示网页

我正在使用iOS9和XCode7.2让我的应用使用WkWebView和Swift显示网页。为了消除可能的错误,我创建了一个只有以下代码的XCode项目,Main.storyboard中没有任何内容。奇怪的是,在我过去几天反复运行代码后,该网页只显示“1次”。StackOverflow上的两名成员确认该代码适用于XCode8/Swift3和Xcode7.3.1/iOS9.3模拟器。我的xCode是否太旧或其他什么问题可能导致它?importUIKitimportWebKitclassWebViewController:UIViewController{@IBOutletvarcontai

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

objective-c - 在 block 保留周期中调用函数

如果我从block内部调用的函数引用“self”,是否会创建一个保留循环?__weakidweakSelf=self;-(void)firstFunction{idstrongSelf=weakSelf;if(!strongSelf)return;[anObjectperformBlock:^{[strongSelfsecondFunction];}];}-(void)secondFunction{[selfdoSomeCrazyStuff];self.counter++;//etc.}我在“secondFunction”中调用“self”,是否需要将我的弱指针传递给此函数并改为使用它