草庐IT

multi-struct

全部标签

swift - 为什么 reduce 对 Struct 不起作用?

我有以下代码structTab{varorigin:CGFloatvarwidth:CGFloatinit(width:CGFloat){origin=0self.width=width}}letsubTabs=[Tab(width:1),Tab(width:2)]letw=reduce(subTabs,CGFloat(0),{$0.width+$1.width})并期望reduce对我的结构中的width求和。但它会引发编译器错误(您可以在Playground中测试)。 最佳答案 reduce需要的函数有两个参数:累加值和序列中的

swift - C 中的 offsetof(struct, member) 在 Swift 中的等价物是什么?

这是Swift中的一个结构体:structA{varxvaryvarz}我应该怎么做才能得到结构A中y的偏移量,就像C中的offsetof(A,y)一样?谢谢:) 最佳答案 MemoryLayout.offset(of:)是在Swift4.2中添加的,实现了SE-0210Addanoffset(of:)methodtoMemoryLayout例子:structA{varx:Int8vary:Int16varz:Int64}MemoryLayout.offset(of:\A.x)//0MemoryLayout.offset(of:\A

ios - 未使用 Struct 初始化变量时如何处理默认初始化程序

我正在使用swiftstruct并尝试在我的结构变量未初始化时使用其默认初始化程序,我尝试了非可选变量和可选变量,但仅显示“memberwiseInitializer”。下面是带有可选变量的例子structmyFirstStruct{varvalue1:String?varvalue2:String?}下面是非可选变量的例子structmyFirstStruct{varvalue1:Stringvarvalue2:String}它只给myFirstStruct(value1:,value2:)我想使用myFirstStruct()帮帮我。:) 最佳答案

arrays - 将 Swift Array 的内容复制到 Struct embedded Tuple

为了与BLE特征进行通信,我有一个Swift结构,如下所示:structPacket{varcontrol1:UInt8=0varcontrol2:UInt8=0varpayload:(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)init(control1:UInt8,control2:UInt8){self.control1=control1self.control2=c

ios - swift 4 可编码 : Common struct for all model

在这里我得到了我所有api的API响应。{"success":true,"message":"","data":{/multipaldataparameter/}}这是我的可编码模型structLogin:Codable{letsuccess:Boolletmessage:Stringletdata:DatastructData:Codable{}}如何为success和message参数创建通用的Sturct。 最佳答案 您可以使代表网络响应的根结构成为通用的,这将允许您在所有专门的响应中保持success和message部分通用

swift - 可以在 Swift "computed constant"中设置 `struct` 吗?

为了方便命名常量,我想在Swift中执行以下操作(我的实际情况不那么琐碎),以便我可以在以后的代码中引用IntegerConstants.SIX。但是,SIX不能被赋值,因为ONE和TWO在struct初始化之前没有值..有点“第二十二条军规”structIntegerConstants{letONE=1.0letTWO=2.0letSIX=(ONE+TWO)*TWO}有没有一种方法可以做到这一点,或者有一种等效方法可以创建一个我还没有发现的“GROUP.VALUE”形式的命名常量? 最佳答案 如果您使用它来对常量进行分组,如使用I

swift - iOS- swift : multi line labels in TableView rows

我正在尝试在tableview单元格中插入一些多行标签,但看起来如下图所示。我希望文本在换行符处换行并根据需要占用更多行,必要时增加单元格的高度。在图片中,我希望每个标签都可以展开成多行。标签嵌入到一个垂直堆栈View中,它又嵌入到另一个堆栈View中。我已经尝试了很多可能性,包括将每个标签嵌入View中,将标签行设置为0,以及我在SO答案上找到的其他内容,但是没有,标签没有正确包装,它们总是只占用一个行。编辑:我补充一点解释:1)我认为问题出在堆栈View上,它会自动设置subview的高度。2)是的,我可以使用动态高度单元格,但这不是重点,因为对我来说,让单元格具有相同的高度就足够

swift - 有没有办法在 Swift 中为 (`==` 自动定义 compare `struct` ) 函数?

假设我们在Swift中有一个非常大的struct:structSuperStruct{varfield1:Int=0varfield2:String=""//lotsoflines...varfield512:Float=0.0}..然后我们需要实现Equatable协议(protocol):extensionSuperStruct:Equatable{}func==(lhs:SuperStruct,rhs:SuperStruct)->Bool{returnlhs.field1==rhs.field1&&lhs.field2==rhs.field2&&//lotsoflines...l

struct - 错误 : 'Int' is not convertible to '@lvalue Float'

给定以下函数:funcgreatestCommonDenominator(first:Int,second:Int)->Int{returnsecond==0?first:greatestCommonDenominator(second,first%second)}还有一个包含以下内容的结构:structFraction{varnumerator:Intvardenominator:Intfuncreduce(){letgcd=greatestCommonDenominator(numerator,denominator)self.numerator/=gcdself.denomina

methods - 从 struct 中快速调用方法

我在这里找到了一个看起来像迭代枚举的优雅解决方案:HowtoenumerateanenumwithStringtype?接下来,我无法确定如何调用此方法。从表面上看,它看起来不像需要参数,但是当我尝试调用Card.createDeck()时,我收到一个编译器错误,告诉我“错误:调用中参数#1缺少参数”。请让我知道我在这里做错了什么?我应该将什么传递给此方法?structCard{varrank:Rankvarsuit:SuitfuncsimpleDescription()->String{return"The\(rank.simpleDescription())of\(suit.sim