草庐IT

static-assert

全部标签

swift - 为什么建议在 Swift 协议(protocol)中使用 static 作为属性要求的前缀?

在SwiftdocumentationsectionaboutProtocols,它写道:Alwaysprefixtypepropertyrequirementswiththestatickeywordwhenyoudefinetheminaprotocol.Thisrulepertainseventhoughtypepropertyrequirementscanbeprefixedwiththeclassorstatickeywordwhenimplementedbyaclass我不明白你是应该总是还是只在特定情况下这样做(因为在后面的文档中,static并不总是存在)。为什么推荐使

swift - 如何在 Swift 类扩展中创建 'static'?

在这里的几个地方,有人建议在NSDate的扩展中使用计算属性可能是通过NSDateFormatter获取日期的字符串版本的好方法>,像这样:extensionNSDate{publicvarUTC:String{letformatter=NSDateFormatter()formatter.dateFormat="yyyy-MM-ddHH:mm:ssZZZ"formatter.timeZone=NSTimeZone(abbreviation:"UTC")returnformatter.stringFromDate(self)}}但是,分配一个NSDateFormatter的开销很大,建

ios - 在 guard 语句的 else block 中使用 assert

我在GoogleAnalytics的实现说明中遇到了这个问题:guardletgai=GAI.sharedInstance()else{assert(false,"GoogleAnalyticsnotconfiguredcorrectly")}我从来没有想过可以在else子句中有一个断言,而不返回。这对我来说没有意义,因为断言只会在测试方案中进行评估。那么,为什么编译器不警告它没有返回(在发布版本的情况下)。编辑:这是在函数application(_:didFinishLaunchingWithOptions)->Bool中编辑2:我发现的其他信息可以回答它:Unfortunately

objective-c - 如何创建包含 Swift 和 ObjC 代码并为 iOS7 构建的 Touch Framework 或 Static Lib?

我想创建一个单独的库,其中主要包含Objective-C代码以及一些Swift文件。我尝试使用Xcode6的TouchFramework,如果我的部署目标在最终产品中>=iOS8.0,它就可以正常工作。但我需要为IOS7构建,但它失败了,并解释说iOS7不支持链接/加载动态库。之后我创建了静态库目标,但问题是它不支持swift文件(swift模块)。关于如何使它适用于iOS7的任何想法? 最佳答案 经过几天的尝试,尽管Apple说静态库不支持Swift,我还是找到了以下解决方案。如果我尝试使用从Xcode构建的swift文件构建静态

ios - Objective-c 项目 : not supported for static libraries 中的 Swift

我正在尝试从https://github.com/codestergit/SweetAlert-iOS/blob/master/SweetAlert/SweetAlert.swift导入一个swift文件到现有的Objective-C项目中。将文件添加到项目后,我尝试编译(只添加文件而不做任何其他操作),但出现以下构建错误:Swiftisnotsupportedforstaticlibraries我是swift的新手,看不到这个库是如何标记为静态的,也不知道我应该如何更改它并使其编译-我不需要它是静态的。我该如何解决这个问题? 最佳答案

swift - 在 Swift 中,是否可以从结构中获取所有 **static** 属性?

我有一个带有类似协议(protocol)的结构protocolPage{funcgetAllProperties()->[String:Any]}extensionPage{publicfuncgetAllProperties()->[String:Any]{varresult:[String:Any]=[:]letmirror=Mirror(reflecting:self)print(mirror)for(labelMaybe,valueMaybe)inmirror.children{print(labelMaybe)guardletlabel=labelMaybeelse{cont

swift - 为什么总是在 Swift 协议(protocol)中使用 static 关键字作为类型属性要求的前缀?

在TheSwiftProgrammingLanguage一书的第369页,它说“在协议(protocol)中定义类型属性要求时,始终使用static关键字作为前缀。”示例代码:protocolAnotherProtocol{staticvarsomeTypeProperty:Int{getset}}这样做的原因或好处是什么? 最佳答案 因为没有static关键字,您最终声明的是实例属性而不是类型属性。紧跟在您引用的段落之后的示例显示了这一点:Here’sanexampleofaprotocolwithasingleinstancep

swift - swift 中 struct static func 与 class static func 之间的区别?

我无法找到classstaticfunction与structstaticfunction之间的任何区别。据我所知,类静态函数不能被继承,结构也没有继承选项。Pleasedonotgetconfusedbystaticfuncandclassfuncinclass.classa{staticfuncmyMethod1(){}}对比structa{staticfuncmyMethod1(){}} 最佳答案 这有点牵强,但由于class和struct类型的引用与值语义,分别在实现如果提供了类型的实例,您希望使用类型方法(static)来

ios - 使用未解析的标识符 'Static'

我已经更新了xcode8.0swift3,我发现了很多错误。这是其中之一:Useofunresolvedidentifier'Static'这是我在以前的版本xcode7.3.1swift2中创建和工作的类。importUIKitenumFONTSIZE:Int{casesizesmall=1casesizesbig=2casesizemedium=3}classsizeFont:NSObject{privatestaticvar__once:()={Static.instance=sizeFont()}()classfuncgetSize(_enumFont:FONTSIZE)->C

swift - iOS 核心蓝牙 : startAdvertising() Error advertising static data

我想发布静态数据。我在iOS上使用Swift2.2.1和CoreBluetooth。我的应用构建蓝牙Services及其相应的Characteristics,然后调用startAdvertising(),peripheralManagerDidStartAdvertising90回调返回此错误:peripheralManagerDidStartAdvertisingencounteredanerror.//MineOneormoreparameterswereinvalid.//...fromAppleCoreBluetoothnil//...returnvaluefromAppleC