在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、注释: 1、单行注释和OC一致。 2、块注释中有与OC不同点:可以嵌套注释
二、常量和变量: 1.常量:初始化后可读不可写 let 2.变量:初始化后可读可写 var 1 //不需要指定类型,系统会自动判断。 2 let teacherName = "虎哥";//自动判断为字符串,句尾分号可写可不写 3 let teacherName1 = 25;//自动判断为数字 4 let teacherAge = 26 5 //变量:初始化之后变量 (可读可写) 6 var teacherName2 = "虎哥"; 7 8 teacherName2 = "虎哥最帅" 9 //teacherName2 = 25//编译失败---只能在同类型间赋值(初始化之后类型就已经固定) 10 11 //print(teacherName2); 1 //2.用 + 合并string , + 号前后类型需要一致 2 3 var hu = huName + String (huAge) 4 5 6 //print(hu); 7 8 9 //3.占位符 OC:%@,%d... S: \(xxx) 10 11 let huInfo2 = "虎哥\(huAge)岁"// = [NSString stringWithFormat@"虎哥%ld岁",huAge] 12 13 14 //print(teacherInfo2) 15 16 //4.指定类型,类型不会乱 .UInt 修饰的数据不能为负 ,int整数可以为负 //常量、变量名可以中文或者图标 17 18 var nameLength :UInt = 7 19 20 var string :String = "hello swift" 1 //5.数值型字面量 2 //十进制 3 let tenValue = 26 4 //二进制 5 6 let twoValue = 0b11010 7 8 //八进制 9 10 let eightValue = 0o32 11 //十六进制 12 13 let sixteenValue = 0x1A 14 15 //print(tenValue,twoValue,eightValue,sixteenValue) 16 17 18 //6.类型别名,类似OC中的tyPeDef 19 20 typealias tongType = Int;//把 int --> tongType 21 22 var tongAge1 : tongType = 26 // var tongAge1:Int = 26 23 24 //7.bool值 OC:BOOL :YES/NO 0为NO,非零即为真 ---- Swift:Bool :true / false 没有0或非零概念 25 26 27 var boolVaue = true 28 29 //8.元组 ,swift新类型 。把多个值绑定的复合值。元组中的值类型可以任意,不要求一致 30 31 var yuanzu:(Int ,String) = (100,"hello") 32 33 //访问元组中的值(类似OC类对象点相应属性) 34 //print(yuanzu.0) 35 36 //9.可选类型。swift新类型。1.如果这个类型有值,就是该值 2.如果没有值 ,这个值就是nil 37 38 //optionStr代表两种情况:1.?号后有值 等于把后值赋给optionStr 2.?后没有值,optionStr = nil 【作用:保护有些值缺失情况】 39 40 41 var optionStr :String? = "hello world" 42 //var optionStr :String? 43 44 //访问可选类型。需要 拆包(强制解析),不能直接访问 45 //注意,强制类型之前,一定要确保可选类有值 46 47 //print(optionStr!) 48 49 50 51 //10.断言。首先有一个条件,如果条件成立,代码继续运行,否则,代码执行结束 52 53 var age = 10 54 //var age = -10 55 assert(age > 0,"年龄不可能为负")//用于调制程序 56 57 58 59 //-------三、运算符 ---- 60 //1.一元运算符 :只需要一个变量即可完成的操作 61 // (1) ‘++‘ 、 ’!‘ 、’ -‘ 62 63 var fuhaoNumber = -10; 64 65 var fuhaoNuner2 = -fuhaoNumber; 66 //print(fuhaoNumber,-fuhaoNumber); 67 68 //(2). 69 70 var addNumer = 88; 71 72 var addnumer2 = addNumer++; 73 74 var addnumer3 = addNumer--; 75 76 //print(addnumer2,addnumer3) 77 78 79 //2.二元运算符 需要两个变量即可完成的操作 80 //数字的计算和C是一样的。可以用 + 拼接字符串 81 82 //print("hello" + "swfit") 83 84 85 //3.符合运算符 += ... 86 87 var a = 1; 88 a += 2 89 90 //print("a等于\(a)") 91 92 93 //4.swift 新增: 区间运算符 (只有两种情况) 94 95 //1...5闭区间运算符,代表[1,5],包含1和5 96 for tempNUmber in 1...5{ 97 //遍历 1 -- 5 98 // print(tempNUmber) 99 } 100 101 // 102 //for tempNumber2 in 1..<5{//[1,5) 103 // 104 // print(tempNumber2) 105 // 106 //} 107 108 109 //5.空盒运算符(??)注意:空盒运算符,前后类型一致 110 //适用范围: 111 //主要结合可选类型使用 。如果是非可选,那么空盒运算符后边的语句就短路掉了 112 113 //空盒运算符,会先判断前边的可选类型有没有值,如果为空。就会返回后边的值。反之,就会对类型进项强制解析,取出可选类型的值 114 115 116 117 //var kongheyuansuanfu :Int? 118 var kongheyuansuanfu :Int? = 78 119 var kongheValue = kongheyuansuanfu ?? 27 120 121 //print(kongheValue) 122 123 124 125 //---四。字符串 和字符 126 127 //NSString /NSMutableString 128 129 //let / var 130 131 //1.创建字符串 带默认值 132 133 var stringValue = "class39" 134 135 stringValue = "NBClass 39" 136 137 //创建空字符串 138 139 var stringValue1 = "" 140 141 var stringValue2 = String()//推荐使用 142 143 //判断字符串是否为空 144 145 //if stringValue2.isEmpty { 146 //// print("isEmpty"); 147 // 148 //} 149 150 151 152 //2.说明字符串是值类型 string 1 和string 2 分为存储在不同地址 同OC 153 154 155 var string1 = "class39" 156 var string2 = string1; 157 158 string1 = "NB" 159 160 //print(string1); 161 //print(string2) 162 163 164 //OC 字符串调用 165 var OCstring1 = NSMutableString(string: "tongli"); 166 167 var OCstring2 = OCstring1; 168 169 //OCstring1.appendString("hahha") 170 171 //print(OCstring1,OCstring2); 172 173 //但是如果把不可变字符串变换为可变,发生不同情况 174 /* 175 NSMutableString *str1 = [NSMutableString stringWithString:@"123"]; 176 177 NSString *str2 = str1; 178 179 [str1 appendString:@"123"]; 180 181 NSLog(@"str1 -- %@",str1); 182 NSLog(@"str2 -- %@",str2); 183 184 */ 185 186 187 188 //3.字符串的长度 189 190 //字符 characters , 191 // 192 //var stringLength = "hello" 193 // 194 //stringLength.characters 195 // 196 // 197 //var str111 = "dog is ????" 198 //for tempchar in str111.characters { 199 // 200 //// print(tempchar) 201 //} 202 // 203 ////长度:先分解成字符,再统计多少个 204 ////print("长度是\(str111.characters.count)") 205 // 206 // 207 ////4.字符串的拼接(两种方法) , 208 ////(1) + 号拼接 209 // 210 //var addStr = "hello" + " world" 211 //// 212 ////print(addStr) 213 // 214 ////(2) 占位符 215 //var addStr2 = "addString \(addStr)" 216 217 //print(addStr2) 218 219 220 //5.字符串的插入 注意区别字符串的拼接 221 222 var string111 = "hello" 223 var string112 = "hello" 224 //string111.insert("1", atIndex:string111.startIndex/*string111.endIndex*/) 225 226 //string111.insert("!", atIndex:string111.startIndex.advancedBy(2))//advance : 前进 227 228 //string111.insert("!", atIndex:string111.endIndex.advancedBy(-2))//advance : 前进 229 230 //插入字符串 231 232 //string111.insertContentsOf(" world".characters, at: string111.endIndex) 233 234 let index = string111.endIndex.advancedBy(-2).predecessor()//predecessor:前任 235 let index2 = string111.endIndex.advancedBy(-2) 236 string111.insertContentsOf(" world".characters, at: index) 237 string112.insertContentsOf(" world".characters, at: index2) 238 //print(string111) 239 //print(string112) 240 //--------- 241 242 243 //6.字符串的删除(截取) 244 245 //1. string --> NString,通过OC方法操作字符串 246 247 var baseStr :NSString = "123456789" 248 249 //let indexStr1 = baseStr.substringFromIndex(2) 250 251 //let indexStr1 = baseStr.substringToIndex(2) 252 253 let indexStr1 = baseStr.substringWithRange(NSMakeRange(2, 4)) 254 255 //print(indexStr1) 256 257 258 259 //直接操作 .......................................................................... 260 261 var baseStr2 = "123456789" 262 263 let range = baseStr2.endIndex.advancedBy(-5) ..< baseStr2.endIndex 264 265 baseStr2.removeRange(range) 266 267 //print(baseStr2) 268 269 //7. 字符串的比较 A == B // 必须是string类型 区别NSString 270 271 var compareStr1 = "万万没想到" 272 var compareStr2 = "十万个冷笑话" 273 274 if compareStr1 == compareStr2 { 275 276 // print("true") 277 278 }else{ 279 280 // print("false") 281 } 282 283 //注意:当swift完不成需求时,可以转化为OC,再进行操作 284 285 286 //-------------------------------------五、集合性(collection)类型 ---------------------------- 287 288 //-------------------------------------------A/数组 var:可变 let :不可变 289 290 291 //1.创建数组 292 293 //(1)空数组 294 var emptyArr = [Int]()//代表数组只能存放int类型 295 296 //添加元素 297 emptyArr.append(3) 298 emptyArr.append(4) 299 //print(emptyArr) 300 301 302 303 //创建一个带有默认值的数组 304 305 var arr:[String] = ["apple","MiNi","HUAWEI","oppo"] 306 307 308 309 //二、对数组编辑 310 //增 311 //1.arr.append(<#T##newElement: Element##Element#>) 312 313 //2.插入 314 arr.insert("vivo", atIndex: 1) 315 316 //3.合并 (两个以上数组合并) 317 318 arr += ["SAMSUNG","Nokia"] 319 320 321 //删除 remove 322 323 arr.removeAtIndex(4) 324 325 //修改 与OC类似,也是通过下标修改 326 327 //修改一个元素 328 arr[0] = "a pple" 329 330 //修改多个元素 331 332 arr[0...2] = ["MIUI" , "iOS" ,"Swift"] 333 334 335 //数组的遍历//不用指定类型 336 for temp in arr { 337 338 339 } 340 341 //得到元素在数组中下标 index--下标 value -- 值(数组元素) 其中enumerate()返回值是一个数组,这个数组每个人元素是元组 ,这个元组包含的是下标和数组元素值 342 343 for (index,value) in arr.enumerate() { 344 345 // print("index -- \(index)----Value -- \(value)") 346 347 } 348 349 350 351 //判断数组是否为空 352 353 if arr.isEmpty { 354 // 355 // print("this arrary is empty") 356 //}else{ 357 // 358 // print("this arrary is not empty \(arr) \n \(arr[0])") 359 360 } 361 362 363 //-------------------------------------------------字典 ----------------- 364 365 //1.创建字典,创建一个空的字典 []中式键值对得类型 366 367 var emptyDic = [Int : String]() 368 369 //字典的设置和访问 370 371 emptyDic[1] = "iPone_1" 372 emptyDic[2] = "iPone_2" 373 //print(emptyDic[1]) 374 //print(emptyDic[2]) 375 376 //2.创建字典,带有默认值 377 378 var cityDic : [String : String] = ["中国":"北京","美国":"华盛顿","日本":"东京","马尔代夫":"马累"] 379 380 381 //3.判断字段是否为空 382 383 if cityDic.isEmpty { 384 } 385 386 //4.增 387 //通过键值去增加 388 cityDic["韩国"] = "首尔" 389 cityDic["法国"] = "巴黎" 390 391 392 //5.删除 393 //通过键删除 394 395 cityDic.removeValueForKey("日本") 396 397 398 //6.修改 399 400 //方法一:通过键修改和添加一样。 401 //如果字典中不存在该键,则为添加。否则为修改 402 403 cityDic["韩国"] = "汉城" 404 405 //方法二: 406 cityDic.updateValue("普罗旺斯", forKey: "法国") 407 408 409 //7.遍历 410 411 //for in 中间写键值对 412 /* 413 for (key,value) in cityDic { 414 415 //print("key -- \(key) ++ value --- \(value)") 416 417 } 418 */ 419 //也可以只遍历key或者value 420 /* 421 for tempKey in cityDic.keys { 422 423 // print("\(tempKey)") 424 } 425 */ 426 427 428 //for tempValue in cityDic.values { 429 // 430 //print(tempValue) 431 //} 432 433 434 //print(cityDic) 435 436 437 438 439 //-------------------------------------集合----------------------------------- 440 //1.无序性 2.互异性 441 442 //1.创建一个集合 443 //空 444 var emptySet = Set<String>() 445 446 447 //有默认值 448 449 var defaultSet : Set<String> = ["法拉利","兰博基尼","宝马","吉普","布加迪"] 全部评论
专题导读
上一篇:iOS开发笔记(Swift)-针对Swift调用PPiFlatSegmentedControl项目的一些修改 ...发布时间:2022-07-13下一篇:Swift里performSelector方法的替代发布时间:2022-07-13热门推荐
热门话题
阅读排行榜
|
请发表评论