美文网首页
Swift收藏集

Swift收藏集

作者: 独孤流 | 来源:发表于2023-01-13 18:41 被阅读0次

将字符串变成字符的数组

extension String {
    ///  将字符串按字符变成数组
    var characterList: [String] {
        return Array(self).map(String.init)
    }
    
    // 判断是否是重复的字符
    var isRepeatCharacter: Bool {
        if self.count < 2 {
            return false
        }
        if Set(self.characterList).count == 1 {
            return true
        }
        return false
    }

    /// 判断是否是连续的数字
    var isConsecutiveNumberCharacter: Bool {
        if self.count < 2 {
            return false
        }
        let txtList = self.characterList
        for index in 1..<txtList.count {
            let preText = Int(txtList[index - 1]) ?? 0
            let currentText = Int(txtList[index]) ?? 0
            // 如果有一个不是连续数据,则都不是连续数据
            if currentText - preText != 1 {
                return false
            }
        }
        return true
    }
}

Rang变成数组

let minNum = 5
let maxNum = 8
let list1 = Array(minNum...maxNum)
let list2 = (minNum...maxNum).map { $0 }
let list3 = (minNum...maxNum).map { "\($0)" }

判断数组里的内容是否是重复的内容,通过数组转换成Set的方式

func isRepeatCharacter() {
  let list = ["a","b","c"]
   if list.count < 2 {
      return false
   }
  if Set(list).count == 1 {
       return true
  }
   return false
  }

判断数组里的内容是否是重复的内容,通过对数组的第一个内容开始与前一个进行比较,这个代码多些,但理论时间效率会更高

func isRepeatCharacter2() {
  let txtList = ["a","b","c"]
   if txtList.count < 2 {
      return false
   }
   for index in 1..<txtList.count {
       let preText = txtList[index - 1]
       let currentText = txtList[index]
      // 如果有一个不是重复的数据,则都不是重复的数据
       if currentText != preText {
           return false
       }
  }
     return true
}


rxswift在调用merge组合信号时,需要信号内的内容要一致

Cannot convert value of type 'Observable<[String]>' to expected argument type 'Observable<Bool>'

let ov1 = Observable.of(true)
let ov2 = Observable.of(["A","B"])
let ov3 = Observable.of(Void())
let disposeBag =  DisposeBag()
Observable.merge(ov1, ov2, ov3)
.subscribe { _ in
   print("")
 }.disposed(by: disposeBag)

解决方法,使用不要求相同类型的关键字例如combineLatest或者转换成相同类型

 let ov1 = Observable.of(true)
let ov2 = Observable.of(["A","B"])
let ov3 = Observable.of(Void())
let disposeBag =  DisposeBag()
// 方式一
Observable.combineLatest(ov1,ov2,ov3)
.subscribe { _ in
  print("")
}.disposed(by: disposeBag)
  
// 方式二
Observable.merge(
     ov1.map { _ in Void() },
     ov2.map { _ in Void() },
     ov3.map { _ in Void() }
).subscribe{ _ in
       print("")
}.disposed(by: disposeBag)

相关文章

  • Swift收藏集

    将字符串变成字符的数组 判断数组里的内容是否是重复的内容,通过数组转换成Set的方式 判断数组里的内容是否是重复的...

  • Swift 特性 - 收藏集 - 掘金

    ReSwift 介绍 - iOS - 掘金 什么是 ReSwift ReSwift 是基于 Redux 思想实现的...

  • 【收藏党】我的2017 iOS开发工具集

    【收藏党】我的2017 iOS开发工具集 【收藏党】我的2017 iOS开发工具集

  • iOS中swift源码及插件的安装(笔记)

    下载插件的网址:https://github.com/apple/swift 1.swift相关的教程建议收藏:h...

  • 收藏集

    http://blog.csdn.net/zxt0601/article/details/53040506 (一些...

  • 收藏集

    做开发十年,我总结出了这些开发经验————收藏理由:后人莫踩前人坑 用户评分系统设计与实现———— 收藏理由:对...

  • swift-day03-集合

    [swift-day03-集合] Swift 语言提供Arrays、Sets和Dictionaries三种基本的集...

  • 地图定位位置偏移 将WGS-84转为GCJ-02(火星坐标) S

    解决中国特色的火星坐标 附Swift代码 自己翻译的Swift代码如下,需要的朋友可以收藏, //这个判断也可直接...

  • Chrome浏览器实用插件

    Pinbox —— 临时收藏文章、图片等(收藏速度很快,有三种显示模式。免费版只支持5个收藏集、300条收藏) E...

  • 书画

    传统文化书画是收藏理财最佳首选,集观赏性收藏理财装饰于一体,

网友评论

      本文标题:Swift收藏集

      本文链接:https://www.haomeiwen.com/subject/ucewcdtx.html