当前位置: 首页 > news >正文

徐州网站网站建设天津做网站报价

徐州网站网站建设,天津做网站报价,北京游戏公司排名,wordpress赞助插件★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号#xff1a;山青咏芝#xff08;shanqingyongzhi#xff09;➤博客园地址#xff1a;山青咏芝#xff08;https://www.cnblogs.com/strengthen/#xff09;➤GitHub地址山青咏芝shanqingyongzhi➤博客园地址山青咏芝https://www.cnblogs.com/strengthen/➤GitHub地址https://github.com/strengthen/LeetCode➤原文地址https://www.cnblogs.com/strengthen/p/10241650.html ➤如果链接不是山青咏芝的博客园地址则可能是爬取作者的文章。➤原文已修改更新强烈建议点击原文地址阅读支持作者支持原创★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 目录[Swift]通天遁地Swift 本文将演示对基本类型Int、String、Array、Dictionary、Date的扩展。 首先确保在项目中已经安装了所需的第三方库。 点击【Podfile】,查看安装配置文件。 1 platform :ios, 12.0 2 use_frameworks! 3 4 target DemoApp do 5 source https://github.com/CocoaPods/Specs.git 6 pod EZSwiftExtensions 7 end 根据配置文件中的相关配置安装第三方库。 然后点击打开【DemoApp.xcworkspace】项目文件。 在项目导航区打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码对基本类型Int、String、Array、Dictionary、Date扩展。 1 import UIKit2 //在当前的类文件中引入已经安装的第三方类库3 import EZSwiftExtensions4 5 class ViewController: UIViewController {6 7 override func viewDidLoad() {8 super.viewDidLoad()9 // Do any additional setup after loading the view, typically from a nib.10 11 //获得设备的各种信息12 eZFunctions()13 //对视图控制器和其他基本类型进行扩展14 extensionExample()15 //字符串相关的扩展方法16 stringExamples()17 //可变字符串NSAttributedString相关的扩展方法18 nSAttributedStringExtensions()19 //数组相关的扩展方法20 arraryExtension()21 //字典相关的扩展方法22 dictionaryExample()23 //用于日期相关的扩展方法24 dateExample()25 }26 27 //添加一个方法通过扩展方法获得设备的各种信息28 func eZFunctions()29 {30 //获取版本号31 print(ez.appVersion!)32 //获取编译号33 print(ez.appBuild!)34 print(ez.appVersionAndBuild!)35 36 //检测设备是否处于竖立状态37 if ez.screenOrientation.isPortrait38 {39 print(Screen orientation is portrait)40 }41 else42 {43 //检测设备是否处于横放状态44 print(Screen orientation is not portrait)45 }46 47 //输出屏幕宽度48 print(ez.screenWidth)49 //输出屏幕高度50 print(ez.screenHeight)51 52 //输出状态栏的高度53 print(ez.screenStatusBarHeight)54 //输出屏幕不包含状态栏的高度55 print(ez.screenHeightWithoutStatusBar)56 57 //第三方库还提供了一个快速下载网络图片的方法58 ez.requestImage(http://images.apple.com/v/apple-watch-nike/a/images/overview/features_large.jpg)59 {60 (image) - Void in61 //网络图片下载完成之后跳转到主线程并显示下载后的图片62 ez.runThisInMainThread { () - Void in63 //创建一个图像视图用来显示下载的网络图片64 let myImageView UIImageView(image: image)65 //并将图像视图添加到根视图66 self.view.addSubview(myImageView)67 }68 }69 70 //第三方库对多线程提供了很好的支持使开发者可以很方便的创建一个新的线程。71 ez.runThisInBackground { () - () in72 print(Runs this in default priority queue)73 }74 75 //通过获取JSON的方法可以访问服务器的接口并处理从服务器返回的数据。76 ez.requestJSON(http://www.runoob.com/try/angularjs/data/sites.php, success:77 { (object) - Void in78 print(object ?? )79 })80 //处理服务器接口返回失败的情况81 { (error) - Void in82 print(error)83 }84 }85 86 //添加一个方法对视图控制器和其他基本类型进行扩展87 func extensionExample()88 {89 //初始化 一个视图控制器对象90 let vc UIViewController()91 //在控制台输出视图控制器对象的类名92 print(vc.className:\(vc.className))93 //输出类的名称字符串94 print(UIViewController.className:\(UIViewController.className))95 96 //初始化一个布尔遍历97 var myBool: Bool true98 //通过布尔类型的扩展方法反转布尔变量的值99 print(myBool.toggle():\(myBool.toggle())) 100 101 //初始化一个整形常量 102 let myNumber -33 103 //通过扩展属性检测是否为偶数 104 print(myNumber.isEven:\(myNumber.isEven)) 105 //通过扩展属性检测是否为奇数 106 print(myNumber.isOdd:\(myNumber.isOdd)) 107 //通过扩展属性检测是否为正数 108 print(myNumber.isPositive:\(myNumber.isPositive)) 109 //通过扩展属性检测是否为负数 110 print(myNumber.isNegative:\(myNumber.isNegative)) 111 //获得并输出某个整数的数字个数 112 print(myNumber.digits:\(myNumber.digits)) 113 114 //通过数字类型的范围属性可以快速创建一个循环 115 for index in 5.range 116 { 117 print(index:\(index)) 118 } 119 120 //初始化一个无符号的整数 121 let someUInt: UInt 3 122 //将其转化为整数 123 let myInt someUInt.toInt 124 125 //整数转换为双精度 126 print(myInt.toDouble:\(myInt.toDouble)) 127 //整数转换为浮点 128 print(myInt.toFloat:\(myInt.toFloat)) 129 //整数转换为CGFloat 130 //需要兼容64位机器的程序而言需要用CGFloat 131 print(myInt.toCGFloat:\(myInt.toCGFloat)) 132 //整数转换为字符串 133 print(myInt.toString:\(myInt.toString)) 134 //整数转换为无符号整形 135 print(myInt.toUInt:\(myInt.toUInt)) 136 } 137 138 //添加一个方法用于字符串相关的扩展方法 139 func stringExamples() 140 { 141 //初始化一个内容为数字的字符串 142 var myString 33.3 143 //转化为Double类型 144 print(myString.toDouble:\(myString.toDouble)) 145 //转化为Int类型 146 print(myString.toInt:\(myString.toInt)) 147 148 //删除字符串中的空格和换行符 149 myString.trim() 150 //在控制台输出 151 print(myString:\(myString)) 152 153 //初始化另一个字符串常量 154 let eZSwiftExtensions eZSwiftExtensions 155 //输出在字符串中指定位数的字符 156 print(eZSwiftExtensions[2]:\(eZSwiftExtensions[2])) 157 print(eZSwiftExtensions[3]:\(eZSwiftExtensions[3])) 158 //输出在字符串中指定范围的字符 159 print(eZSwiftExtensions[2...4]:\(eZSwiftExtensions[2...4])) 160 //获得某个字符在另一个字符串中的位置 161 print(eZSwiftExtensions.getIndexOf(w):\(eZSwiftExtensions.getIndexOf(w) ?? 0)) 162 163 //初始化另一个字符串常量 164 let awesomeString eZSwiftExtensions is awesome! 165 //获得并输出字符串的长度 166 print(awesomeString.length:\(awesomeString.length)) 167 //输出首字母大写的字符串 168 print(awesomeString.capitalized:\(awesomeString.capitalized)) 169 170 //初始化另一个字符串常量 171 let awesomeString2 eZSwiftExtensions is awesome! 172 //在字符串中是否包含三个字符串 173 print(awesomeString2.contains(squirtle):\(awesomeString2.contains(squirtle))) 174 print(awesomeString2.contains(awesome):\(awesomeString2.contains(awesome))) 175 print(awesomeString2.contains(AWESOME):\(awesomeString2.contains(AWESOME))) 176 //设置相关的选项对是否包含字符串进行检测 177 //这里设置在检测字符时考虑大小写的不同 178 print(awesomeString2.contains(AWESOME, compareOption: NSString.CompareOptions.caseInsensitive)) 179 180 //创建两个字符串常量 181 let awesomeString3 \n eZSwiftExtensions is awesome! \n \n 182 let emptyStr \n \n \n 183 184 //检测字符串是否为空 185 print(awesomeString3.isBlank:\(awesomeString3.isBlank)) 186 print(emptyStr.isBlank:\(emptyStr.isBlank)) 187 188 let awesomeString4 eZSwiftExtensions is awesome! 189 let emailStr charmandergmail.com 190 //检测字符串是否为邮箱格式 191 print(awesomeString4.isEmail:\(awesomeString4.isEmail)) 192 print(emailStr.isEmail:\(emailStr.isEmail)) 193 194 //创建一个字符串常量 195 let urlString http://www.google.com is great but www.bd.com not that much 196 //通过抽取网址列表方法可以抽取字符串中的所有网址 197 print(myString.extractURLs:\(myString.extractURLs)) 198 print(emailStr.extractURLs:\(emailStr.extractURLs)) 199 print(urlString.extractURLs:\(urlString.extractURLs)) 200 201 //创建一个字符串常量 202 let myNumberString 13 203 //将字符串转换为相应类型 204 print(myNumberString.toInt():\(String(describing: myNumberString.toInt()))) 205 print(myNumberString.toDouble():\(String(describing: myNumberString.toDouble()))) 206 print(myNumberString.toFloat():\(String(describing: myNumberString.toFloat()))) 207 208 //创建两个字符串常量 209 let myBoolString false 210 let myOtherString hello 211 //将字符串转换为布尔类型 212 print(myBoolString.toBool():\(String(describing: myBoolString.toBool()))) 213 print(myOtherString.toBool():\(String(describing: myOtherString.toBool()))) 214 215 //创建两个字符串常量 216 let myStr 10.5 217 let myOtherStr Legolas 218 //判断字符串是否完全由数字组成 219 print(myStr.isNumber():\(myStr.isNumber())) 220 print(myOtherStr.isNumber():\(myOtherStr.isNumber())) 221 222 //初始化一个较长的字符串 223 let str Like all Apple Watch Series 2 models, Apple Watch Nike has built-in GPS to track your pace, distance, and route — even if you don’t have your iPhone with you. With the brightest display Apple has ever made, your metrics are easy to read, no matter how much the sun glares. And Apple Watch Nike is rated water resistant 50 meters,* so you can even take a post-run dip in the pool. 224 //统计在字符串中总共包含了多少个指定的字符串 225 print(str.count:\(str.count(Watch))) 226 } 227 228 //添加一个方法可变字符串NSAttributedString相关的扩展方法 229 func nSAttributedStringExtensions() 230 { 231 //初始化一个NSAttributedString常量 232 let str NSAttributedString(string: Like all Apple Watch Series 2 models, Apple Watch Nike has built-in GPS to track your pace, distance, and route — even if you don’t have your iPhone with you. With the brightest display Apple has ever made, your metrics are easy to read, no matter how much the sun glares. ) 233 234 //可变字符串拥有多个扩展方法 235 var attrStr1 str.underline()//下划线 236 .bold()//加粗 237 .italic()//斜体 238 .color(.orange)//设置颜色为橙色 239 //设置自定义样式的字符范围 240 .attributedSubstring(from: NSRange(location: 0, length: 120)) 241 242 //可变字符串拥有多个扩展方法 243 let attrStr2 str.strikethrough()//添加中心线 244 //设置自定义样式的字符范围 245 .attributedSubstring(from: NSRange(location: 120, length: str.length-121)) 246 //将两个可变字符串进行拼接 247 attrStr1 attrStr2 248 249 //初始化一个标签对象并设置标签的显示区域 250 let label UILabel(frame: CGRect(x: 20, y: 40, width: 280, height: 200)) 251 //设置标签对象可以显示多行文字 252 label.numberOfLines 0 253 //将可变字符串赋予标签对象 254 label.attributedText attrStr1 255 //将标签对象添加到根视图 256 self.view.addSubview(label) 257 } 258 259 //添加一个方法用于数组相关的扩展方法 260 func arraryExtension() 261 { 262 //初始化一个数组对象然后随机获得数组中的一个元素 263 let myArray [charmander,bulbasaur,squirtle] 264 print(myArray.random():\(String(describing: myArray.random()))) 265 266 //初始化一个数组对象然后获得某个元素在数组中的索引位置 267 let myArray2 [charmander,bulbasaur,squirtle,charmander] 268 print(myArray2.indexesOf(charmander):\(myArray2.indexesOf(charmander))) 269 270 //初始化一个数组对象 271 //假如某个数组拥有多个相同的元素获得最后一个对象所在的索引位置 272 let myArray3 [charmander,bulbasaur,squirtle,charmander] 273 print(myArray3.lastIndexOf(charmander):\(String(describing: myArray3.lastIndexOf(charmander)))) 274 275 //初始化一个数组对象删除数组中的指定元素 276 var myArray4 [charmander,bulbasaur,squirtle] 277 myArray4.removeObject(charmander) 278 print(myArray4:\(myArray4)) 279 280 //初始化一个数组对象判断是否包含某个实例 281 let myArray5 [charmander,bulbasaur,squirtle] 282 print(myArray5.containsInstanceOf:\(myArray5.containsInstanceOf(charmander))) 283 print(myArray5.containsInstanceOf(1):\(myArray5.containsInstanceOf(1))) 284 285 //初始化一个数组对象判断是否包含另一个数组中的所有元素 286 let myArray6 [charmander,bulbasaur,squirtle] 287 print(containsArray([charmander,bulbasaur]):\(myArray6.containsArray([charmander,bulbasaur]))) 288 //初始化一个数组对象判断是否包含另一个数组中的元素 289 print(myArray6.containsArray([string]):\(myArray6.containsArray([string]))) 290 291 //初始化一个数组对象该数组包含字符串和整形两种类型的元素 292 var myArray7 [charmander,bulbasaur,squirtle,1,2,3] as [Any] 293 //将数组中的所有元素随机排序。 294 //更改数组中各位元素的位置。 295 myArray7.shuffle() 296 print(myArray7:\(myArray7)) 297 298 //初始化一个数组对象将一个新的元素插入到数组中的首位。 299 var myArray8 [charmander,bulbasaur,squirtle] 300 myArray8.insertAsFirst(snorlax) 301 print(myArray8:\(myArray8)) 302 303 //初始化一个数组对象 304 let myArray9 [charmander,bulbasaur,squirtle] 305 //两个数组同时拥有的元素交集 306 print(myArray9.intersection:\(myArray9.intersection([charmander,pikachu,bulbasaur]))) 307 //两个元素的并集 308 print(myArray9.union:\(myArray9.union([charmander,pikachu]))) 309 310 //初始化一个数组对象两个数组互不拥有的元素。 311 let myArray10 [charmander,bulbasaur,squirtle,pikachu] 312 print(myArray10.difference:\(myArray10.difference([charmander,bulbasaur]))) 313 } 314 315 //添加一个方法用于字典相关的扩展方法 316 func dictionaryExample() 317 { 318 //初始化一个字典对象检测在字典中是否包含指定的键 319 let myDict [charmander: fire,bulbasaur: grass,squirtle: water] 320 print(myDict.has(charmander):\(myDict.has(charmander))) 321 print(myDict.has(pikachu):\(myDict.has(pikachu))) 322 323 //初始化一个字典对象将字典中的键值随机分布 324 let myDict2 [charmander: fire,bulbasaur: grass,squirtle: water] 325 print(myDict2.random():\(myDict2.random())) 326 327 //初始化另外两个字典对象 328 var dict1 [charmander : fire] 329 let dict2 [squirtle : water] 330 331 //初始化一个字典对象拼接两个字典对象 332 dict1 dict2 333 print(dict1:\(dict1)) 334 335 //初始化另外两个字典对象 336 let dictionary1 [charmander : fire, bulbasaur : grass] 337 let dictionary2 [charmander: fire,squirtle: water] 338 339 //两个字典对象的交集 340 var dictionary3 dictionary1.intersection(dictionary2) 341 print(dictionary3:\(dictionary3)) 342 343 //两个字典对象的并集 344 dictionary3 dictionary1.union(dictionary2) 345 print(dictionary3:\(dictionary3)) 346 //两个字典对象的补集 347 print(dictionary1.difference:\(dictionary1.difference(dictionary1, dictionary2))) 348 } 349 350 //添加一个方法用于日期相关的扩展方法 351 func dateExample() 352 { 353 //初始化两个字符串对象分别标识日期的格式、日期的值 354 let format yyyy/MM/dd 355 let fromString 2016/01/11 356 //输出格式化后的日期 357 print(Date(fromString: fromString, format: format):\(String(describing: Date(fromString: fromString, format: format)))) 358 359 //初始化一个日期对象 360 let now Date() 361 //输出日期对象转换成字符串后的内容 362 print(now.toString():\(now.toString())) 363 //通过设置日期和时间格式可以将日期对象转换成指定格式的日期和时间。 364 //日期格式共有五种无、短、中、长、全 365 print(now.toString(dateStyle: .medium, timeStyle: .medium):\(now.toString(dateStyle: .medium, timeStyle: .medium))) 366 //使用字符串设置日期和时间的格式 367 //然后将日期转换成指定格式的内容。 368 print(now.toString(format:yyyy/MM/dd HH:mm:ss):\(now.toString(format: yyyy/MM/dd HH:mm:ss))) 369 370 //初始化另外两个日期对象 371 let now2 Date() 372 let later Date(timeIntervalSinceNow: -100000) 373 //计算两个日期之间相差的 374 //天数 375 print(later.daysInBetweenDate(now2):\(later.daysInBetweenDate(now2))) 376 //小时数 377 print(later.hoursInBetweenDate(now2):\(later.hoursInBetweenDate(now2))) 378 //分钟数 379 print(later.minutesInBetweenDate(now2):\(later.minutesInBetweenDate(now2))) 380 //秒数 381 print(later.secondsInBetweenDate(now2):\(later.secondsInBetweenDate(now2))) 382 383 //初始化另一个日期对象 384 //然后计算该日期距离当前时间已经走过的长度 385 let date1 Date(timeIntervalSinceNow: -100000) 386 print(date1.timePassed():\(date1.timePassed())) 387 388 //初始化另一个日期并计算时间的流逝 389 let date2 Date(timeIntervalSinceNow: -10000) 390 print(date2.timePassed():\(date2.timePassed())) 391 392 //计算第三个日期的时间流逝 393 let date3 Date(timeIntervalSinceNow: -1000) 394 print(date3.timePassed():\(date3.timePassed())) 395 396 //初始化另外两个日期对象 397 let now3 Date() 398 let now4 Date() 399 400 //使用数学符号快速比较两个日期的大小。 401 print(now3 now4:\(now3 now4)) 402 print(now3 now4:\(now3 now4)) 403 print(now3 now4:\(now3 now4)) 404 405 //通过时间类可以快速创建延迟动作 406 //在此创建一个延迟两秒然后在“主线程”执行的动作。 407 Timer.runThisAfterDelay(seconds: 2) 408 { () - () in 409 print(Prints this 2 seconds later in main queue) 410 } 411 412 //在此创建一个延迟两秒然后在“子线程”执行的动作。 413 Timer.runThisAfterDelay(seconds: 2, queue: DispatchQueue.global()) 414 { () - () in 415 print(Prints this 2 seconds later) 416 } 417 } 418 419 override func didReceiveMemoryWarning() { 420 super.didReceiveMemoryWarning() 421 // Dispose of any resources that can be recreated. 422 } 423 }  转载于:https://www.cnblogs.com/strengthen/p/10241650.html
http://www.zqtcl.cn/news/969353/

相关文章:

  • ppt素材网站建设流程图网站开发原型工具
  • 乡镇医院网站建设成都市企业网站建设
  • 网站编辑如何做原创网站中英切换实例
  • 哈尔滨道外区建设局官方网站wordpress简称
  • 教师网站建设企业实践总结华为应用商店下载安装
  • 常见的网站空间服务商资阳建设局网站
  • 惠通网站建设湖南seo优化服务
  • 网站建设价格标准wordpress花钱吗
  • 龙门惠州网站建设苏州公司注册查询
  • 城阳网站设计自建网站与平台建站
  • 网站建设文字教程wordpress xml生成
  • wordpress修改注册表广西seo网站
  • 新兴网站建设招商网站建设多少钱
  • 商城网站页面模板网页设计的首页如何设计官网
  • 我的世界做外国壁纸网站嘉兴推广公司
  • 网站制作在哪里找怎样上传wordpress模板
  • 网站设计时尚博业建站网
  • 网站建设前期如何规划免费的源代码分享有哪些网站
  • 长春网络培训seo
  • 江苏网站开发建设电话公司网站需求说明书
  • 河北建设厅网站首页个人或主题网站建设实验体会
  • 网站后台文章栏目做外汇消息面的网站
  • 白酒营销网站用asp.net做简易网站
  • 做seo需要建网站吗上传PDF到wordpress网站
  • 湘潭网站网站建设龙岩网站建设馨烨
  • 本地网站建设教程xampperp软件是什么意思啊
  • 网站没有流量房地产广告设计网站
  • 北京学网站开发企业官网设计规范
  • wordpress google插件广州seo
  • 网站制作平台专门做推广的软文