草庐IT

objective-c - 如何在 Swift2 中使用 ObjC block 类型定义(尤其是当包含 BOOL 参数时)

在转向Xcode7(beta5)和Swift2之后,我在我的Swift代码中收到关于Bool(或BOOL/ObjCBool​​)使用Objective-Ctypedef从闭包传递(或传入)闭包的值。typedefvoid(^completion_success_block_t)(BOOLsuccess);当我在Swift类中使用此类型时,出现编译器错误。funcdoSomething(completionBlock:completion_success_block_t){doSomethingElse{successinifsuccess==true{}//(1)error1letfo

multithreading - 如何在 Swift 中创建 volatile bool 值?

我想在后台执行一些任务并添加取消任务的能力。类似于:while!isCanceled&&someOtherCondition(){doSome()}并从另一个线程取消任务:funccancel(){isCanceled=true}在Java中,我可以声明isCancelledvolatile,这就足够了。我如何在Swift中执行此操作? 最佳答案 似乎这是你的答案:Swiftdoesnot(yet)haveawell-definedmemorymodel,sothere’snodirectequivalentofC’svolatil

objective-c - Swift 2.0 和 objective-c 兼容方法返回带有参数 NSError 的 Bool

我正在开发一个使用objective-c框架的新项目,所有新代码都在Swift中。我遇到了一个有趣的兼容性问题。问题来自Swift2.0,其中objective-c中返回BOOL并采用NSError参数的任何方法都被转换为返回的方法Swift中的Void和throws。这种翻译的一个例子是NSManagedObjectContext现在在Swift中的保存方法:publicfuncsave()throws当从Swift调用代码并且实现也在Swift中时,这不是问题。我面临的问题是我不能(或不应该)在遵循相同模式的objective-c中修改的框架。在这种情况下,我正在实现在object

swift - 如何在 Swift 单元测试中断言可选 Bool 的值?

我有一个类似于以下内容的Swift单元测试:varfirstArgumentInClosure:Bool?someFunc{firstArgumentInClosure=$0}XCTAssertTrue(firstArgumentInClosure?)我试图断言调用闭包时第一个参数是true。这不会编译错误消息:'?'mustbefollowedbyacall,memberlookup,orsubscript我可以解决这个问题的一种方法是将断言更改为:XCTAssertEqualTrue(firstArgumentInClosure??false)有没有更简洁的方法来做到这一点?看到有

ios - 如何使用 RxSwift 观察 Bool 属性?

我的VC.swift中有两个Bool属性:varisRecording=falsevarisPlaying=false在viewDidLoad()方法中我有这样的代码:letobservable=Observable.combineLatest(self.rx_observe(Bool.self,"isRecording"),self.rx_observe(Bool.self,"isPlaying")){(val1,val2)->Voidinif(val1==false&&val2==false){self.recordButton.enabled=trueself.playButto

ios - Swift iOS - 如何设置 UIView 的高度 anchor <= 到标签的固有文本大小? 'NSLayoutConstraint' 不可转换为 'Bool'

我有一个程序View,其中有一个标签,我将其固定到导航栏的底部。标签内将有动态文本,如果文本高度使其变小,我希望标签所在的View至少为64磅或更大。此标签文本的固有大小将View设置在一个明显的高度。setViewAndLabel(dynamicText:"UnknownError\nPleasetryyourrequestagain\Error:123")然而,此文本的固有大小使高度变小了:setViewAndLabel(dynamicText:"MessageDeleted!")MessageDeleted!应该更符合以下内容:我使用了一些返回键来设置它,但我认为这不是正确的方法

ios - 使用 JSONSerialization() 动态计算 bool 值

我从服务器(或文件)获取一个JSON字符串。我想解析该JSON字符串并动态找出每种值类型。但是,对于bool值,JSONSerialization只是将值转换为0或1,代码无法区分“0”是Double、Int还是Bool。我想在不明确知道特定键对应于Bool值的情况下识别该值是否为Bool。我做错了什么,或者我可以做些什么不同的事情?//Whatcurrentlyishappening:letjsonString="{\"boolean_key\":true}"letjsonData=jsonString.data(using:.utf8)!letjson=try!JSONSerial

swift - 如何将 bool 值与数组进行比较? - swift

我有这个:ifsender.tag==1||sender.tag==2||sender.tag==3||sender.tag==4||sender.tag==5||sender.tag==6||sender.tag==7||sender.tag==8||sender.tag==9||sender.tag==10{无论如何,有没有类似这样的东西来最小化它:ifsender.tag==[1||2||3||4||5||6||7||8||9||10]{ 最佳答案 怎么样if(1...10).contains(sender.tag)?

swift - 如何在 Objective-C 中表示一个可选的 bool 值(Bool?)?

我正在尝试用swift编写一个协议(protocol)@objcprotocolRestAPIManagerDelegate{optionalfunccredentialValidated(isValid:Bool?)}但我收到以下错误:'Methodcannotbemarked@objcbecausethetypeoftheparametercannotberepresentedinObjective-C'有什么建议吗? 最佳答案 问题是这个类型声明:`isValid:Bool?`这在Swift中非常好。但是你不能将它暴露给Obj

ios - Swift 使用 reduce 从 bool 数组计算分数

下面的代码在playground上运行良好,可以根据输入的bool值数组计算分数。如果我遵循的是最佳实践,我会感到有点困惑。我正在使用一个名为score的变量来获取结果。有没有更好的方法通过避免额外的分数变量来做到这一点?以下是我的代码片段:vararr=[false,true,true,true]varscore=0letsum=arr.reduce(0){(result,next)->Intinifnext==true{score=score+1}returnscore} 最佳答案 你可以试试letsum=arr.filter{