草庐IT

swift_FORCE_LOAD

全部标签

Swift 4.2+ 播种随机数生成器

我正在尝试使用Swift4.2+生成种子随机数,使用Int.random()函数,但是没有允许随机数生成器种子的给定实现。据我所知,唯一的方法是创建一个符合RandomNumberGenerator协议(protocol)的新随机数生成器。有没有人推荐更好的方法,或者具有播种功能的RandomNumberGenerator符合类的实现,以及如何实现它?此外,在寻找解决方案时,我曾多次看到srand和drand这两个函数,但从它们很少被提及的情况来看,我不确定使用它是否是错误的约定,而且我也找不到关于它们的任何文档。我正在寻找最简单的解决方案,不一定是最安全或性能最快的解决方案(例如,使

swift - 生成包含一个属性的加权平均值和另一个属性的总和的对象

我有一个包含值(value)变化信息的类-即特定事物在特定时间范围内值(value)变化的数量和百分比。这个类看起来像这样:@objcinternalfinalclassValueChange:NSObject{//MARK:-InternalPropertiesinternallettimeframe:Timeframeinternalletvalue:NSDecimalNumberinternalletpercentage:NSDecimalNumber}我需要一种方法来计算多个这些对象的加权平均值。更具体地说,我需要一个函数,它采用ValueChange数组并将值属性相加。应该对

ios - 使用 HealthKit 结果填充 TableView - Swift

我正在尝试用AppleHealth返回的HealthKit来填充我的TableView。我目前从AppleHealth获取过去7天的日期和心率。我可以在控制台中清楚地看到所有内容。这是我的block代码:funcgetTodaysHeartRate(completion:(@escaping(HKQuantitySample)->Void)){print("func")letheartRateUnit:HKUnit=HKUnit(from:"count/min")letheartRateType:HKQuantityType=HKQuantityType.quantityType(fo

当专门化类型受附加协议(protocol)约束时,Swift 无法专门化泛型参数

想象一下以下场景:classFood{}protocolGrowable{}classAnimal{}letanimal1=Animal()//Okletanimal2=Animal()//Compileerror:'Animal'requiresthat'Food&Growable'inheritfrom'Food'很明显,如果我们有一个Food&Growable类型的变量,那么这个变量也是Food类型的。然而,Animal类的通用参数T不能专门用于Food&Growable类型。这是为什么? 最佳答案 错误信息有点奇怪,但是你试

swift - 在 Swift 中,什么是 DictionaryLiteralConvertible?

如果您将以下简单的代码片段放入Playground中:importFoundationlethumanReadableNames=["test":NSLocalizedString("foo")]你会得到编译器错误:Cannotconfertheexpression'stype'Dictionary'totype'DictionaryLiteralConvertible'Swift函数NSLocalizedString被定义为返回String,所以我不明白为什么这个变量的类型不只是Dictionary. 最佳答案 看来你需要在NSL

ios - swift : Issue with accessing CFDictionaryRef for ABAddressBookRef

我已经在ObjC中收集了联系人的地址信息,ABMultiValueRefaddressProperty=ABRecordCopyValue(contactRef,kABPersonAddressProperty);CFDictionaryRefdict=ABMultiValueCopyValueAtIndex(addressProperty,0);if(dict){NSString*street=(NSString*)CFDictionaryGetValue(dict,kABPersonAddressStreetKey);}所以,等效的Swift代码是,letaddressProper

cocoa - Swift 中的 Array 如何知道它是否包含一个元素?

Swift中的数组可以存储任何Swift类型,包括Struct、Enum和Class实例。但是没有函数==能够比较任何类型的Swift对象。而===运算符也只能比较两个引用。所以我想知道,当函数contains()被调用时,Swift中的数组如何知道它包含一个元素。 最佳答案 如果您查看函数签名:funccontains(seq:S,x:S.Generator.Element)->Bool你看到数组中的元素必须是实现Equatable协议(protocol)的类型,它只包含一个方法:func==(lhs:Self,rhs:Self)

ios - 如何在 swift 中从可加载包创建主体类的实例

我需要在swift中从一个可加载包中创建一个主体类的实例。关于这个类,我所知道的只是它遵循一个特定的协议(protocol)(不是@objc协议(protocol))并且它不是NSObject的子类。这可能吗?在带有NSObject的Obj-C中非常简单,因为实际上,obj-c并不关心类型,但是这个很快,天哪,NSBundle的principalClass属性返回AnyClass?,这在地球上怎么可能创建那个AnyClass的实例?输入并告诉它现在它符合swift协议(protocol)?提前致谢 最佳答案 非@objc协议(pro

swift - 如何在 SpriteKit 中改变物体的质量以随着重力下降得更慢

我正在尝试用spritekit中的树叶制作游戏。我启用了重力等并在游戏中创建了一个地面。游戏开始时,模拟重力,树叶落到地上并停止。这很好,但是叶子的当前速度太快而且看起来不现实,一旦我进一步开发我想要更大的叶子“称重”更多并更快地落下(这意味着我不只是想改变世界的重力)。我想如果我只是改变叶子的质量它会改变速度,但没有。将它更改为任何数字,例如像.0000002这样的小数字对改变速度没有任何作用。知道发生了什么事吗? 最佳答案 将此添加到didMoveToView():physicsWorld.gravity=CGVectorMak

iphone - xcode swift - 将文本格式化为电话号码

这个问题在这里已经有了答案:UITextFieldforPhoneNumber(25个答案)关闭8年前。我正在使用Swift创建一个iPhone应用程序。我正在尝试设置一个文本字段,用户可以在其中输入一个电话号码,该电话号码会自动格式化,就像在键入时在内置的“联系人”应用程序中一样。我希望xcode具有执行此操作的内置方法。作为替代方案,我创建了自己的代码,可以在用户键入和退格时添加和删除括号、破折号等,但如果用户将光标移离输入文本的末尾,这很快就会出现问题.在联系人应用程序中,如果光标刚好移动到括号后面并且用户点击退格键,它不仅会删除括号,还会删除它前面的数字。我不确定这是否是通过某