swift-extensions相关内容
我使用以下代码对我的字符串url进行编码 let originalString = "test/test" let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: . urlQueryAllowed) print(escapedString!) 我正在寻找SWIFT扩展来编码url,这
..
我倾向于只将必需品(存储的属性、初始值设定项)放入我的类定义中,而将其他所有内容移到它们自己的extension中,这有点像我也要与// MARK:分组的每个逻辑挡路的extension。 例如,对于UIView子类,我最终会得到一个用于布局相关内容的扩展,一个用于订阅和处理事件等的扩展。在这些扩展中,我不可避免地要覆盖一些UIKit方法,例如layoutSubviews。直到今天,我才注意
..
假设我有一个名为 SwiftKit 的框架,它有一个名为 someClassMethod 的 UIView 扩展类方法和一个名为 someProperty 的属性: //SwiftKit公共扩展 UIView {类函数 someClassMethod() {print("来自 Swift Kit 的 someClassMethod")}var someProperty: 双 {print("来自
..
说你有 class Fancy:UIView 您想查找所有兄弟 Fancy 视图.没问题... for v:UIView in superview!.subviews{如果让 f = v 作为?想要{ f.hungry = false }} 所以,尝试一个扩展, 公共扩展UIView{内部函数fancySiblings()->([Fancy]){返回(self.superview!.
..
在这个问题的上下文中,我想如何可以实现一个属性或方法来计算所有集合中的嵌套级别. 直觉上,这应该是可行的: 扩展集合{var flatCount: Int {如果 self.count == 0 {返回 0} else if self.first is Collection {//.Iterator.Element: Collectionreturn self.reduce(0) { (r
..
我想使用 Accelerate 框架来扩展 [Float] 和 [Double],但每个都需要不同的实现. 我尝试了显而易见的: 扩展数组{} 并得到这个错误: "必须在非特化泛型上声明约束扩展类型 'Array' 由'where' 子句指定的约束" 是否可以通过这种方式在 Swift 2 中扩展泛型类型? 我现在已经让代码按预期工作了.这是一个使用 Accelerat
..
我正在尝试进行此扩展: 扩展 UIViewController{class func initialize(storyboardName: String, storyboardId: String) ->自己{让 storyboard = UIStoryboard(name: storyboardName, bundle: nil)让控制器 = storyboad.instantiateView
..
我正在尝试为 Array 编写一个扩展,它允许将可选 T 的数组转换为非可选 T 的数组. 例如这可以写成这样的自由函数: func removeAllNils(array: [T?]) ->[T] {返回数组.filter({ $0 != nil })//删除 nils,仍然是 [T?].map({ $0! })//从 T 转换每个元素?到一个 T} 但是,我无法让它作为扩展工作.我试
..
从 Swift 2.2 转换到 3.0 后,我的 Array 扩展不再编译,因为它包含对全局标准库函数 min(T,T) 并显示编译器错误extra argument in call. 这是重现错误的简单方法: 扩展数组{func minimumInt(first: Int, second: Int) ->整数{return min(first, second)//编译器错误:“调用中的额
..
从 Swift 2.0 开始,我们似乎可以更接近适用于谓词情况的泛型类型的扩展. 虽然我们还是做不到: protocol Idable {var id : 字符串 { 获取 }}扩展数组,其中 T :Idable {...} ...我们现在可以这样做: 扩展数组{func filterWithId(id : String) ->[T] {...}} ...Swift 在语法上接受了它
..
我的代码中有自定义颜色.我多次使用它们,我希望它们只分配一次. 情况/问题 如果我们查看 UIColor 标题,我们可以看到以下内容: [...]//一些创建颜色的便捷方法.这些颜色将尽可能校准.//这些颜色被缓存.open class var black: UIColor { get }//0.0 白色open class var darkGray: UIColor { get }
..
我正在尝试创建结构方法来创建具有正确笔尖名称的 UIViewController(以修复 iOS8 默认初始化程序问题).为此,我添加了扩展名: 扩展 UIViewController {类 func create() ->自己 {如果#available(iOS 9.0, *) {返回 self.init()} 别的 {让 clsName = NSStringFromClass(self).c
..
我想在 Swift 中为(例如)两个值的元组编写一个扩展.例如,我想编写这个 swap 方法: let t = (1, "一")让 s = t.swap 这样 s 将是 (String, Int) 类型,值为 ("one", 1).(我知道我可以很容易地实现一个 swap(t) 函数,但这不是我感兴趣的.) 我可以这样做吗?我似乎无法在 extension 声明中写出正确的类型名称.
..
我有一个协议和一个协议扩展,我想在协议扩展中实现一个函数,用自定义对象对协议定义的数组进行排序,但它不起作用. protocol MyProtocol {var myArray: [MyObject] { 设置}}扩展我的协议{func sortArrayByCreationTime() {myArray.sort {$0.created >$1.created}}} Xcode 告诉我“so
..
我是 iOS/Swift 的初学者,正在尝试创建一个没有 Storyboard 的简单应用程序.我创建了一个 UIButton 扩展,我想在我的视图中添加一个简单的按钮(稍后会设置约束).不幸的是,该按钮不可见.如果有人帮助我,我将不胜感激.谢谢! --- Buttons.swift --- 扩展 UIButton {func createRectangleButton(buttonPos
..
嗨,我正在尝试使用 ParseLiveQuery 检索数据 我的问题是...我无法分配数组中的项目... 导入基础导入解析导入 ParseLiveQuery扩展 _ArrayProtocol 其中 Iterator.Element == PFObject {变异 func updateWithEvent(event: Event) {切换事件{案例.created(让对象):追加(对象)c
..
我正在尝试构建一个公开静态属性的协议,然后在该协议的扩展中使用该静态属性,但它似乎只有在我也在协议扩展中定义此静态属性时才有效.基本上是我试图开始工作的代码: protocol NibInstantiable: class {静态变量包:包?{ 得到 }静态变量笔尖名称:字符串 { 获取}}扩展 NibInstantiable 其中 Self: UIViewController {//静态 va
..
let numberSet = Set(1...11)让divideSet = numberSet.map({ $0/10 })//错误:Set 没有名为 map 的成员 :( Swift 1.2 支持 Set() 用于无序集合,但 map(_:) 似乎不适用于 Sets,所以我决定在我的游乐场并尝试过: let stringSet = Set(map(numberSet, { Strin
..
我想创建现有 swift 类的类别,但 IDE 中没有这样做的选项. 知道 swift 项目中是否存在类别吗?或者如何在swift项目中实现类似的功能? 解决方案 在 Swift 中,您可以使用 Extensions 向现有类、结构和枚举类型添加新功能. 它们在几个方面与 Objective-C 类别不同,主要是: 他们没有名字 您不需要显式导入扩展.如果您定义扩展以向
..
我搜了一些帖子,我觉得我不能在Swift下写一个扩展,从Objective-C代码中调用它,对吗? @objc 之类的属性只支持方法、类、协议? 解决方案 您可以编写 Swift 扩展并在 Objective-C 代码中使用它.使用 XCode 6.1.1 测试. 您需要做的就是: 在 Swift 中创建您的扩展(@objc 自 Swift 4.0.3 起需要注释)
..