mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-30 22:54:07 +00:00 
			
		
		
		
	ADDED swift test file for syntax highlighting
This commit is contained in:
		
				
					committed by
					
						 David Peter
						David Peter
					
				
			
			
				
	
			
			
			
						parent
						
							5b095ed6f3
						
					
				
				
					commit
					fd01f0a0ee
				
			
							
								
								
									
										268
									
								
								tests/syntax-tests/highlighted/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								tests/syntax-tests/highlighted/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,268 @@ | ||||
| [3;38;2;102;217;239mclass[0m[38;2;248;248;242m Person {[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m We can define class property here[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mvar[0m[38;2;248;248;242m age  [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m25[0m[38;2;248;248;242m[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Implement Class initializer. Initializers are called when a new object of this class is created[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114minit[0m[38;2;248;248;242m() { [0m | ||||
| [38;2;248;248;242m   print(“A [0m[38;2;249;38;114mnew[0m[38;2;248;248;242m instance of this [0m[3;38;2;102;217;239mclass[0m[38;2;248;248;242m Person [0m[38;2;249;38;114mis[0m[38;2;248;248;242m created[0m[38;2;249;38;114m.[0m[38;2;248;248;242m”) [0m | ||||
| [38;2;248;248;242m } [0m | ||||
| [38;2;248;248;242m} [0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m We can now create an instance of class Person - an object - by putting parentheses after the class name[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m personObj [0m[38;2;249;38;114m=[0m[38;2;248;248;242m  Person()[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Once an instance of Person class is created we can access its properties using the dot “.” syntax.[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mprint(“This person age [0m[38;2;249;38;114mis[0m[38;2;248;248;242m \(personObj[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage)”)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114mimport[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFoundation[0m[38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mclass[0m[38;2;248;248;242m Friend [0m[38;2;249;38;114m:[0m[38;2;248;248;242m Comparable {[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m name [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m age [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114minit[0m[38;2;248;248;242m(name [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m, age: [0m[3;38;2;166;226;46mInt[0m[38;2;248;248;242m) {[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mself[0m[38;2;249;38;114m.[0m[38;2;248;248;242mname [0m[38;2;249;38;114m=[0m[38;2;248;248;242m name[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mself[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m=[0m[38;2;248;248;242m age[0m | ||||
| [38;2;248;248;242m    }[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46m<[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mlhs: Friend, rhs: Friend[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m->[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mBool[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m lhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m<[0m[38;2;248;248;242m rhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mlhs: Friend, rhs: Friend[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m->[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mBool[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m lhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m>[0m[38;2;248;248;242m rhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage[0m | ||||
| [38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46m==[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mlhs: Friend, rhs: Friend[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m->[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mBool[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mvar[0m[38;2;248;248;242m returnValue [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mfalse[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (lhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mname [0m[38;2;249;38;114m==[0m[38;2;248;248;242m rhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mname) [0m[38;2;249;38;114m&&[0m[38;2;248;248;242m (lhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m==[0m[38;2;248;248;242m rhs[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage)[0m | ||||
| [38;2;248;248;242m    {[0m | ||||
| [38;2;248;248;242m        returnValue [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mtrue[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m returnValue[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m  [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m friend1 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m Friend(name: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, age: [0m[38;2;190;132;255m35[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m friend2 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m Friend(name: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, age: [0m[38;2;190;132;255m30[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        print([0m[38;2;230;219;116m"[0m[38;2;248;248;240m\[0m[38;2;230;219;116mC[0m[38;2;230;219;116mo[0m[38;2;230;219;116mm[0m[38;2;230;219;116mp[0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mF[0m[38;2;230;219;116mr[0m[38;2;230;219;116mi[0m[38;2;230;219;116me[0m[38;2;230;219;116mn[0m[38;2;230;219;116md[0m[38;2;230;219;116m [0m[38;2;230;219;116mo[0m[38;2;230;219;116mb[0m[38;2;230;219;116mj[0m[38;2;230;219;116me[0m[38;2;230;219;116mc[0m[38;2;230;219;116mt[0m[38;2;230;219;116m.[0m[38;2;230;219;116m [0m[38;2;230;219;116mS[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mp[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116ms[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116m?[0m[38;2;230;219;116m [0m[38;2;230;219;116m([0m[38;2;230;219;116mf[0m[38;2;230;219;116mr[0m[38;2;230;219;116mi[0m[38;2;230;219;116me[0m[38;2;230;219;116mn[0m[38;2;230;219;116md[0m[38;2;230;219;116m1[0m[38;2;230;219;116m [0m[38;2;230;219;116m=[0m[38;2;230;219;116m=[0m[38;2;230;219;116m [0m[38;2;230;219;116mf[0m[38;2;230;219;116mr[0m[38;2;230;219;116mi[0m[38;2;230;219;116me[0m[38;2;230;219;116mn[0m[38;2;230;219;116md[0m[38;2;230;219;116m2[0m[38;2;230;219;116m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46msayHelloWorld[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mH[0m[38;2;230;219;116me[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116m [0m[38;2;230;219;116mW[0m[38;2;230;219;116mo[0m[38;2;230;219;116mr[0m[38;2;230;219;116ml[0m[38;2;230;219;116md[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Call function[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242msayHelloWorld()[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mprintOutFriendNames[0m[38;2;248;248;242m([0m[38;2;248;248;242mnames: [0m[3;38;2;166;226;46mString[0m[38;2;249;38;114m...[0m[38;2;248;248;242m)[0m[38;2;248;248;242m  [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m  [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m name [0m[38;2;249;38;114min[0m[38;2;248;248;242m names {[0m | ||||
| [38;2;248;248;242m [0m | ||||
| [38;2;248;248;242m        print(name)[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m [0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Call the printOutFriendNames with two parameters[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mprintOutFriendNames([0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116mB[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Call the function with more parameters[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mprintOutFriendNames([0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116mB[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116mM[0m[38;2;230;219;116ma[0m[38;2;230;219;116mx[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m simpleClosure [0m[38;2;249;38;114m=[0m[38;2;248;248;242m {[0m | ||||
| [38;2;248;248;242m    print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mF[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mm[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116m [0m[38;2;230;219;116ms[0m[38;2;230;219;116mi[0m[38;2;230;219;116mm[0m[38;2;230;219;116mp[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116mC[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116ms[0m[38;2;230;219;116mu[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Call closure[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242msimpleClosure() [0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m fullName [0m[38;2;249;38;114m=[0m[38;2;248;248;242m { (firstName:[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m, lastName:[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m)[0m[38;2;249;38;114m->[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m [0m[38;2;249;38;114min[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m firstName [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m [0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[0m[38;2;248;248;242m lastName[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Call Closure[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m myFullName [0m[38;2;249;38;114m=[0m[38;2;248;248;242m fullName([0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116mK[0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116mo[0m[38;2;230;219;116mp[0m[38;2;230;219;116mo[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116mv[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242mprint([0m[38;2;230;219;116m"[0m[38;2;230;219;116mM[0m[38;2;230;219;116my[0m[38;2;230;219;116m [0m[38;2;230;219;116mf[0m[38;2;230;219;116mu[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116m [0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mi[0m[38;2;230;219;116ms[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mmyFullName[0m[38;2;248;248;242m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m myDictionary [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m]()[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Another way to create an empty dictionary[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m myDictionary2:[[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[38;2;249;38;114m:[0m[38;2;248;248;242m][0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Keys in dictionary can also be of type Int[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mlet[0m[38;2;248;248;242m myDictionary3 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[3;38;2;166;226;46mInt[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m]()[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mvar[0m[38;2;248;248;242m myDictionary [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[38;2;230;219;116m"[0m[38;2;230;219;116mf[0m[38;2;230;219;116mi[0m[38;2;230;219;116mr[0m[38;2;230;219;116ms[0m[38;2;230;219;116mt[0m[38;2;230;219;116m_[0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116ml[0m[38;2;230;219;116ma[0m[38;2;230;219;116ms[0m[38;2;230;219;116mt[0m[38;2;230;219;116m_[0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mK[0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116mo[0m[38;2;230;219;116mp[0m[38;2;230;219;116mo[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116mv[0m[38;2;230;219;116m"[0m[38;2;248;248;242m][0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m print to preview[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mprint(myDictionary)[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Add a new key with a value[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mmyDictionary[[0m[38;2;230;219;116m"[0m[38;2;230;219;116mu[0m[38;2;230;219;116ms[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116m_[0m[38;2;230;219;116mi[0m[38;2;230;219;116md[0m[38;2;230;219;116m"[0m[38;2;248;248;242m] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mf[0m[38;2;230;219;116m5[0m[38;2;230;219;116mh[0m[38;2;230;219;116m7[0m[38;2;230;219;116mr[0m[38;2;230;219;116mu[0m[38;2;230;219;116m0[0m[38;2;230;219;116mt[0m[38;2;230;219;116mJ[0m[38;2;230;219;116mu[0m[38;2;230;219;116mr[0m[38;2;230;219;116mY[0m[38;2;230;219;116m8[0m[38;2;230;219;116mf[0m[38;2;230;219;116m7[0m[38;2;230;219;116mg[0m[38;2;230;219;116m5[0m[38;2;230;219;116ms[0m[38;2;230;219;116m6[0m[38;2;230;219;116mf[0m[38;2;230;219;116md[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m We should now have 3 key value pairs printed[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mprint(myDictionary)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mvar[0m[38;2;248;248;242m myDictionary [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[38;2;230;219;116m"[0m[38;2;230;219;116mf[0m[38;2;230;219;116mi[0m[38;2;230;219;116mr[0m[38;2;230;219;116ms[0m[38;2;230;219;116mt[0m[38;2;230;219;116m_[0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;230;219;116m"[0m[38;2;230;219;116ml[0m[38;2;230;219;116ma[0m[38;2;230;219;116ms[0m[38;2;230;219;116mt[0m[38;2;230;219;116m_[0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mK[0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116mo[0m[38;2;230;219;116mp[0m[38;2;230;219;116mo[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116mv[0m[38;2;230;219;116m"[0m[38;2;248;248;242m][0m | ||||
| [38;2;117;113;94m//[0m[38;2;117;113;94m Loop through dictionary keys and print values[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114mfor[0m[38;2;248;248;242m (key,value) [0m[38;2;249;38;114min[0m[38;2;248;248;242m myDictionary {[0m | ||||
| [38;2;248;248;242m    print([0m[38;2;230;219;116m"[0m[38;2;248;248;242m\([0m[38;2;248;248;242mkey[0m[38;2;248;248;242m)[0m[38;2;230;219;116m [0m[38;2;230;219;116m=[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mvalue[0m[38;2;248;248;242m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m [0m[3;38;2;102;217;239mclass[0m[38;2;248;248;242m Friend {[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m name [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m age [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114minit[0m[38;2;248;248;242m(name [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m, age: [0m[3;38;2;166;226;46mInt[0m[38;2;248;248;242m) {[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mself[0m[38;2;249;38;114m.[0m[38;2;248;248;242mname [0m[38;2;249;38;114m=[0m[38;2;248;248;242m name[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mself[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m=[0m[38;2;248;248;242m age[0m | ||||
| [38;2;248;248;242m    }[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m [0m[3;38;2;102;217;239mvar[0m[38;2;248;248;242m friends:[Friend] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [][0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m friend1 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m Friend(name: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116my[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, age: [0m[38;2;190;132;255m30[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m friend2 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m Friend(name: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mB[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, age: [0m[38;2;190;132;255m35[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m friend3 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m Friend(name: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mM[0m[38;2;230;219;116mi[0m[38;2;230;219;116mc[0m[38;2;230;219;116mh[0m[38;2;230;219;116ma[0m[38;2;230;219;116me[0m[38;2;230;219;116ml[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, age: [0m[38;2;190;132;255m21[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        friends[0m[38;2;249;38;114m.[0m[38;2;248;248;242mappend(friend1)[0m | ||||
| [38;2;248;248;242m        friends[0m[38;2;249;38;114m.[0m[38;2;248;248;242mappend(friend2)[0m | ||||
| [38;2;248;248;242m        friends[0m[38;2;249;38;114m.[0m[38;2;248;248;242mappend(friend3)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        printFriends(friends: friends)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Get sorted array in descending order (largest to the smallest number)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m sortedFriends [0m[38;2;249;38;114m=[0m[38;2;248;248;242m friends[0m[38;2;249;38;114m.[0m[38;2;248;248;242msorted(by: { $[0m[38;2;190;132;255m0[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m>[0m[38;2;248;248;242m $[0m[38;2;190;132;255m1[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage })[0m | ||||
| [38;2;248;248;242m        printFriends(friends: sortedFriends)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Get sorted array in ascending order (smallest to the largest number)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m sortedFriendsAscendingOrder [0m[38;2;249;38;114m=[0m[38;2;248;248;242m friends[0m[38;2;249;38;114m.[0m[38;2;248;248;242msorted(by: { $[0m[38;2;190;132;255m0[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage [0m[38;2;249;38;114m<[0m[38;2;248;248;242m $[0m[38;2;190;132;255m1[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage })[0m | ||||
| [38;2;248;248;242m        printFriends(friends: sortedFriendsAscendingOrder)[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mprintFriends[0m[38;2;248;248;242m([0m[38;2;248;248;242mfriends: [Friend][0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m friendEntry [0m[38;2;249;38;114min[0m[38;2;248;248;242m friends {[0m | ||||
| [38;2;248;248;242m            print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mN[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m:[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mfriendEntry[0m[38;2;249;38;114m.[0m[38;2;248;248;242mname[0m[38;2;248;248;242m)[0m[38;2;230;219;116m,[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116mg[0m[38;2;230;219;116me[0m[38;2;230;219;116m:[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mfriendEntry[0m[38;2;249;38;114m.[0m[38;2;248;248;242mage[0m[38;2;248;248;242m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m        [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    }[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114mimport[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mUIKit[0m[38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mclass[0m[38;2;248;248;242m ViewController: UIViewController  {[0m | ||||
| [38;2;249;38;114moverride[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mviewDidLoad[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114msuper[0m[38;2;249;38;114m.[0m[38;2;248;248;242mviewDidLoad()[0m | ||||
| [38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;249;38;114moverride[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mviewWillAppear[0m[38;2;248;248;242m([0m[38;2;248;248;242m_ animated: [0m[3;38;2;166;226;46mBool[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114msuper[0m[38;2;249;38;114m.[0m[38;2;248;248;242mviewWillAppear(animated)[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Create destination URL [0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m documentsUrl:URL [0m[38;2;249;38;114m=[0m[38;2;248;248;242m  FileManager[0m[38;2;249;38;114m.[0m[38;2;249;38;114mdefault[0m[38;2;249;38;114m.[0m[38;2;248;248;242murls([0m[38;2;249;38;114mfor[0m[38;2;248;248;242m: [0m[38;2;249;38;114m.[0m[38;2;248;248;242mdocumentDirectory, [0m[38;2;249;38;114min[0m[38;2;248;248;242m: [0m[38;2;249;38;114m.[0m[38;2;248;248;242muserDomainMask)[0m[38;2;249;38;114m.[0m[38;2;248;248;242mfirst [0m[38;2;249;38;114mas[0m[38;2;248;248;242m URL[0m[38;2;249;38;114m![0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m destinationFileUrl [0m[38;2;249;38;114m=[0m[38;2;248;248;242m documentsUrl[0m[38;2;249;38;114m.[0m[38;2;248;248;242mappendingPathComponent([0m[38;2;230;219;116m"[0m[38;2;230;219;116md[0m[38;2;230;219;116mo[0m[38;2;230;219;116mw[0m[38;2;230;219;116mn[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116ma[0m[38;2;230;219;116md[0m[38;2;230;219;116me[0m[38;2;230;219;116md[0m[38;2;230;219;116mF[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116m.[0m[38;2;230;219;116mj[0m[38;2;230;219;116mp[0m[38;2;230;219;116mg[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;117;113;94m//[0m[38;2;117;113;94mCreate URL to the source file you want to download[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m fileURL [0m[38;2;249;38;114m=[0m[38;2;248;248;242m URL(string: [0m[38;2;230;219;116m"[0m[38;2;230;219;116mh[0m[38;2;230;219;116mt[0m[38;2;230;219;116mt[0m[38;2;230;219;116mp[0m[38;2;230;219;116ms[0m[38;2;230;219;116m:[0m[38;2;230;219;116m/[0m[38;2;230;219;116m/[0m[38;2;230;219;116ms[0m[38;2;230;219;116m3[0m[38;2;230;219;116m.[0m[38;2;230;219;116ma[0m[38;2;230;219;116mm[0m[38;2;230;219;116ma[0m[38;2;230;219;116mz[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116ma[0m[38;2;230;219;116mw[0m[38;2;230;219;116ms[0m[38;2;230;219;116m.[0m[38;2;230;219;116mc[0m[38;2;230;219;116mo[0m[38;2;230;219;116mm[0m[38;2;230;219;116m/[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116mn[0m[38;2;230;219;116m-[0m[38;2;230;219;116ms[0m[38;2;230;219;116mw[0m[38;2;230;219;116mi[0m[38;2;230;219;116mf[0m[38;2;230;219;116mt[0m[38;2;230;219;116m/[0m[38;2;230;219;116mI[0m[38;2;230;219;116mM[0m[38;2;230;219;116mG[0m[38;2;230;219;116m_[0m[38;2;230;219;116m0[0m[38;2;230;219;116m0[0m[38;2;230;219;116m0[0m[38;2;230;219;116m1[0m[38;2;230;219;116m.[0m[38;2;230;219;116mJ[0m[38;2;230;219;116mP[0m[38;2;230;219;116mG[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m sessionConfig [0m[38;2;249;38;114m=[0m[38;2;248;248;242m URLSessionConfiguration[0m[38;2;249;38;114m.[0m[38;2;249;38;114mdefault[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m session [0m[38;2;249;38;114m=[0m[38;2;248;248;242m URLSession(configuration: sessionConfig)[0m | ||||
| [38;2;248;248;242m [0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m request [0m[38;2;249;38;114m=[0m[38;2;248;248;242m URLRequest(url:fileURL[0m[38;2;249;38;114m![0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m task [0m[38;2;249;38;114m=[0m[38;2;248;248;242m session[0m[38;2;249;38;114m.[0m[38;2;248;248;242mdownloadTask(with: request) { (tempLocalUrl, response, error) [0m[38;2;249;38;114min[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m tempLocalUrl [0m[38;2;249;38;114m=[0m[38;2;248;248;242m tempLocalUrl, error [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;248;248;242mnil[0m[38;2;248;248;242m {[0m | ||||
| [38;2;248;248;242m            [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Success[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m statusCode [0m[38;2;249;38;114m=[0m[38;2;248;248;242m (response [0m[38;2;249;38;114mas?[0m[38;2;248;248;242m HTTPURLResponse)?[0m[38;2;249;38;114m.[0m[38;2;248;248;242mstatusCode {[0m | ||||
| [38;2;248;248;242m                print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mS[0m[38;2;230;219;116mu[0m[38;2;230;219;116mc[0m[38;2;230;219;116mc[0m[38;2;230;219;116me[0m[38;2;230;219;116ms[0m[38;2;230;219;116ms[0m[38;2;230;219;116mf[0m[38;2;230;219;116mu[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116my[0m[38;2;230;219;116m [0m[38;2;230;219;116md[0m[38;2;230;219;116mo[0m[38;2;230;219;116mw[0m[38;2;230;219;116mn[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116ma[0m[38;2;230;219;116md[0m[38;2;230;219;116me[0m[38;2;230;219;116md[0m[38;2;230;219;116m.[0m[38;2;230;219;116m [0m[38;2;230;219;116mS[0m[38;2;230;219;116mt[0m[38;2;230;219;116ma[0m[38;2;230;219;116mt[0m[38;2;230;219;116mu[0m[38;2;230;219;116ms[0m[38;2;230;219;116m [0m[38;2;230;219;116mc[0m[38;2;230;219;116mo[0m[38;2;230;219;116md[0m[38;2;230;219;116me[0m[38;2;230;219;116m:[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mstatusCode[0m[38;2;248;248;242m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m            [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m            [0m[38;2;248;248;242mdo[0m[38;2;248;248;242m {[0m | ||||
| [38;2;248;248;242m                [0m[38;2;249;38;114mtry[0m[38;2;248;248;242m FileManager[0m[38;2;249;38;114m.[0m[38;2;249;38;114mdefault[0m[38;2;249;38;114m.[0m[38;2;248;248;242mcopyItem(at: tempLocalUrl, to: destinationFileUrl)[0m | ||||
| [38;2;248;248;242m            } [0m[38;2;248;248;242mcatch[0m[38;2;248;248;242m ([0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m writeError) {[0m | ||||
| [38;2;248;248;242m                print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mE[0m[38;2;230;219;116mr[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mr[0m[38;2;230;219;116m [0m[38;2;230;219;116mc[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116ma[0m[38;2;230;219;116mt[0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mg[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116m [0m[38;2;230;219;116mf[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mdestinationFileUrl[0m[38;2;248;248;242m)[0m[38;2;230;219;116m [0m[38;2;230;219;116m:[0m[38;2;230;219;116m [0m[38;2;248;248;242m\([0m[38;2;248;248;242mwriteError[0m[38;2;248;248;242m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m            }[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m        } [0m[38;2;249;38;114melse[0m[38;2;248;248;242m {[0m | ||||
| [38;2;248;248;242m            print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mE[0m[38;2;230;219;116mr[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mr[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116mo[0m[38;2;230;219;116mo[0m[38;2;230;219;116mk[0m[38;2;230;219;116m [0m[38;2;230;219;116mp[0m[38;2;230;219;116ml[0m[38;2;230;219;116ma[0m[38;2;230;219;116mc[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mw[0m[38;2;230;219;116mh[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116md[0m[38;2;230;219;116mo[0m[38;2;230;219;116mw[0m[38;2;230;219;116mn[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116ma[0m[38;2;230;219;116md[0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mg[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116m [0m[38;2;230;219;116mf[0m[38;2;230;219;116mi[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116m.[0m[38;2;230;219;116m [0m[38;2;230;219;116mE[0m[38;2;230;219;116mr[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mr[0m[38;2;230;219;116m [0m[38;2;230;219;116md[0m[38;2;230;219;116me[0m[38;2;230;219;116ms[0m[38;2;230;219;116mc[0m[38;2;230;219;116mr[0m[38;2;230;219;116mi[0m[38;2;230;219;116mp[0m[38;2;230;219;116mt[0m[38;2;230;219;116mi[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116m:[0m[38;2;230;219;116m [0m[38;2;230;219;116m%[0m[38;2;230;219;116m@[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, error?[0m[38;2;249;38;114m.[0m[38;2;248;248;242mlocalizedDescription);[0m | ||||
| [38;2;248;248;242m        }[0m | ||||
| [38;2;248;248;242m    }[0m | ||||
| [38;2;248;248;242m    task[0m[38;2;249;38;114m.[0m[38;2;248;248;242mresume()[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m  }[0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m  [0m[38;2;248;248;242mdo[0m[38;2;248;248;242m {[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m            [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Convert JSON Object received from server side into Swift NSArray.[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Note the use "try"[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m convertedJsonIntoArray [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mtry[0m[38;2;248;248;242m JSONSerialization[0m[38;2;249;38;114m.[0m[38;2;248;248;242mJSONObjectWithData(data[0m[38;2;249;38;114m![0m[38;2;248;248;242m, options: []) [0m[38;2;249;38;114mas?[0m[38;2;248;248;242m NSArray {[0m | ||||
| [38;2;248;248;242m            }[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m        } [0m[38;2;248;248;242mcatch[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m error [0m[38;2;249;38;114mas[0m[38;2;248;248;242m NSError {[0m | ||||
| [38;2;248;248;242m            print(error[0m[38;2;249;38;114m.[0m[38;2;248;248;242mlocalizedDescription)[0m | ||||
| [38;2;248;248;242m        }[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242mDispatchQueue[0m[38;2;249;38;114m.[0m[38;2;248;248;242mglobal(qos: [0m[38;2;249;38;114m.[0m[38;2;248;248;242muserInitiated)[0m[38;2;249;38;114m.[0m[38;2;248;248;242masync {[0m | ||||
| [38;2;248;248;242m            [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Do some time consuming task in this background thread[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Mobile app will remain to be responsive to user actions[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m            print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mP[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mf[0m[38;2;230;219;116mo[0m[38;2;230;219;116mr[0m[38;2;230;219;116mm[0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mg[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116mi[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mc[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116ms[0m[38;2;230;219;116mu[0m[38;2;230;219;116mm[0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mg[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116ma[0m[38;2;230;219;116ms[0m[38;2;230;219;116mk[0m[38;2;230;219;116m [0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116mh[0m[38;2;230;219;116mi[0m[38;2;230;219;116ms[0m[38;2;230;219;116m [0m[38;2;230;219;116mb[0m[38;2;230;219;116ma[0m[38;2;230;219;116mc[0m[38;2;230;219;116mk[0m[38;2;230;219;116mg[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mu[0m[38;2;230;219;116mn[0m[38;2;230;219;116md[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116mh[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116ma[0m[38;2;230;219;116md[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m            [0m | ||||
| [38;2;248;248;242m           DispatchQueue[0m[38;2;249;38;114m.[0m[38;2;248;248;242mmain[0m[38;2;249;38;114m.[0m[38;2;248;248;242masync {[0m | ||||
| [38;2;248;248;242m                [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Task consuming task has completed[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m                [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Update UI from this block of code[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m                print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mT[0m[38;2;230;219;116mi[0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mc[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116ms[0m[38;2;230;219;116mu[0m[38;2;230;219;116mm[0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mg[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116ma[0m[38;2;230;219;116ms[0m[38;2;230;219;116mk[0m[38;2;230;219;116m [0m[38;2;230;219;116mh[0m[38;2;230;219;116ma[0m[38;2;230;219;116ms[0m[38;2;230;219;116m [0m[38;2;230;219;116mc[0m[38;2;230;219;116mo[0m[38;2;230;219;116mm[0m[38;2;230;219;116mp[0m[38;2;230;219;116ml[0m[38;2;230;219;116me[0m[38;2;230;219;116mt[0m[38;2;230;219;116me[0m[38;2;230;219;116md[0m[38;2;230;219;116m.[0m[38;2;230;219;116m [0m[38;2;230;219;116mF[0m[38;2;230;219;116mr[0m[38;2;230;219;116mo[0m[38;2;230;219;116mm[0m[38;2;230;219;116m [0m[38;2;230;219;116mh[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mw[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116mr[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116ma[0m[38;2;230;219;116ml[0m[38;2;230;219;116ml[0m[38;2;230;219;116mo[0m[38;2;230;219;116mw[0m[38;2;230;219;116me[0m[38;2;230;219;116md[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116mo[0m[38;2;230;219;116m [0m[38;2;230;219;116mu[0m[38;2;230;219;116mp[0m[38;2;230;219;116md[0m[38;2;230;219;116ma[0m[38;2;230;219;116mt[0m[38;2;230;219;116me[0m[38;2;230;219;116m [0m[38;2;230;219;116mu[0m[38;2;230;219;116ms[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116m [0m[38;2;230;219;116mi[0m[38;2;230;219;116mn[0m[38;2;230;219;116mt[0m[38;2;230;219;116me[0m[38;2;230;219;116mr[0m[38;2;230;219;116mf[0m[38;2;230;219;116ma[0m[38;2;230;219;116mc[0m[38;2;230;219;116me[0m[38;2;230;219;116m.[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m            }[0m | ||||
| [38;2;248;248;242m        }[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114mimport[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mUIKit[0m[38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mclass[0m[38;2;248;248;242m ViewController: UIViewController {[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114moverride[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mviewDidLoad[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114msuper[0m[38;2;249;38;114m.[0m[38;2;248;248;242mviewDidLoad()[0m | ||||
| [38;2;248;248;242m        [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Do any additional setup after loading the view, typically from a nib.[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m button [0m[38;2;249;38;114m=[0m[38;2;248;248;242m UIButton(type: UIButtonType[0m[38;2;249;38;114m.[0m[38;2;248;248;242msystem) [0m[38;2;249;38;114mas[0m[38;2;248;248;242m UIButton[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m xPostion:CGFloat [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m50[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m yPostion:CGFloat [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m100[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m buttonWidth:CGFloat [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m150[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[3;38;2;102;217;239mlet[0m[38;2;248;248;242m buttonHeight:CGFloat [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m45[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        button[0m[38;2;249;38;114m.[0m[38;2;248;248;242mframe [0m[38;2;249;38;114m=[0m[38;2;248;248;242m CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        button[0m[38;2;249;38;114m.[0m[38;2;248;248;242mbackgroundColor [0m[38;2;249;38;114m=[0m[38;2;248;248;242m UIColor[0m[38;2;249;38;114m.[0m[38;2;248;248;242mlightGray[0m | ||||
| [38;2;248;248;242m        button[0m[38;2;249;38;114m.[0m[38;2;248;248;242msetTitle([0m[38;2;230;219;116m"[0m[38;2;230;219;116mT[0m[38;2;230;219;116ma[0m[38;2;230;219;116mp[0m[38;2;230;219;116m [0m[38;2;230;219;116mm[0m[38;2;230;219;116me[0m[38;2;230;219;116m"[0m[38;2;248;248;242m, [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m: UIControlState[0m[38;2;249;38;114m.[0m[38;2;248;248;242mnormal)[0m | ||||
| [38;2;248;248;242m        button[0m[38;2;249;38;114m.[0m[38;2;248;248;242mtintColor [0m[38;2;249;38;114m=[0m[38;2;248;248;242m UIColor[0m[38;2;249;38;114m.[0m[38;2;248;248;242mblack[0m | ||||
| [38;2;248;248;242m        button[0m[38;2;249;38;114m.[0m[38;2;248;248;242maddTarget([0m[38;2;249;38;114mself[0m[38;2;248;248;242m, action: #selector(ViewController[0m[38;2;249;38;114m.[0m[38;2;248;248;242mbuttonAction(_:)), [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m: [0m[38;2;249;38;114m.[0m[38;2;248;248;242mtouchUpInside)[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114mself[0m[38;2;249;38;114m.[0m[38;2;248;248;242mview[0m[38;2;249;38;114m.[0m[38;2;248;248;242maddSubview(button)[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mbuttonAction[0m[38;2;248;248;242m([0m[38;2;248;248;242m_ sender:UIButton[0m[38;2;249;38;114m![0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        print([0m[38;2;230;219;116m"[0m[38;2;230;219;116mB[0m[38;2;230;219;116mu[0m[38;2;230;219;116mt[0m[38;2;230;219;116mt[0m[38;2;230;219;116mo[0m[38;2;230;219;116mn[0m[38;2;230;219;116m [0m[38;2;230;219;116mt[0m[38;2;230;219;116ma[0m[38;2;230;219;116mp[0m[38;2;230;219;116mp[0m[38;2;230;219;116me[0m[38;2;230;219;116md[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114moverride[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mdidReceiveMemoryWarning[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114msuper[0m[38;2;249;38;114m.[0m[38;2;248;248;242mdidReceiveMemoryWarning()[0m | ||||
| [38;2;248;248;242m        [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Dispose of any resources that can be recreated.[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m[0m | ||||
| [38;2;249;38;114mimport[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mUIKit[0m[38;2;248;248;242m[0m | ||||
| [3;38;2;102;217;239mclass[0m[38;2;248;248;242m ViewController: UIViewController {[0m | ||||
| [38;2;248;248;242m    [0m | ||||
| [38;2;248;248;242m    [0m[38;2;249;38;114moverride[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mfunc[0m[38;2;248;248;242m [0m[38;2;166;226;46mviewDidLoad[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;248;248;242m[0m | ||||
| [38;2;248;248;242m        [0m[38;2;249;38;114msuper[0m[38;2;249;38;114m.[0m[38;2;248;248;242mviewDidLoad()[0m | ||||
| [38;2;248;248;242m        [0m | ||||
| [38;2;248;248;242m        [0m[38;2;117;113;94m//[0m[38;2;117;113;94mCreate Activity Indicator[0m | ||||
							
								
								
									
										268
									
								
								tests/syntax-tests/source/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								tests/syntax-tests/source/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,268 @@ | ||||
| class Person { | ||||
| // We can define class property here | ||||
| var age  = 25 | ||||
| // Implement Class initializer. Initializers are called when a new object of this class is created | ||||
| init() {  | ||||
|    print(“A new instance of this class Person is created.”)  | ||||
|  }  | ||||
| }  | ||||
| // We can now create an instance of class Person - an object - by putting parentheses after the class name | ||||
| let personObj =  Person() | ||||
| // Once an instance of Person class is created we can access its properties using the dot “.” syntax. | ||||
| print(“This person age is \(personObj.age)”) | ||||
|  | ||||
| import Foundation | ||||
| class Friend : Comparable { | ||||
|     let name : String | ||||
|     let age : Int | ||||
|      | ||||
|     init(name : String, age: Int) { | ||||
|         self.name = name | ||||
|         self.age = age | ||||
|     } | ||||
| } | ||||
| func < (lhs: Friend, rhs: Friend) -> Bool { | ||||
|     return lhs.age < rhs.age } func > (lhs: Friend, rhs: Friend) -> Bool { | ||||
|     return lhs.age > rhs.age | ||||
| } | ||||
| func == (lhs: Friend, rhs: Friend) -> Bool { | ||||
|     var returnValue = false | ||||
|     if (lhs.name == rhs.name) && (lhs.age == rhs.age) | ||||
|     { | ||||
|         returnValue = true | ||||
|     } | ||||
|     return returnValue | ||||
| } | ||||
|  | ||||
|   let friend1 = Friend(name: "Sergey", age: 35) | ||||
|         let friend2 = Friend(name: "Sergey", age: 30) | ||||
|          | ||||
|         print("\Compare Friend object. Same person? (friend1 == friend2)") | ||||
|  | ||||
| func sayHelloWorld() { | ||||
|     print("Hello World") | ||||
| } | ||||
| // Call function | ||||
| sayHelloWorld() | ||||
|  | ||||
| func printOutFriendNames(names: String...)  { | ||||
|    | ||||
|     for name in names { | ||||
|   | ||||
|         print(name) | ||||
|     } | ||||
|   | ||||
| } | ||||
| // Call the printOutFriendNames with two parameters | ||||
| printOutFriendNames("Sergey", "Bill") | ||||
| // Call the function with more parameters | ||||
| printOutFriendNames("Sergey", "Bill", "Max") | ||||
|  | ||||
| let simpleClosure = { | ||||
|     print("From a simpleClosure") | ||||
| } | ||||
| // Call closure | ||||
| simpleClosure()  | ||||
|  | ||||
| let fullName = { (firstName:String, lastName:String)->String in | ||||
|     return firstName + " " + lastName | ||||
| } | ||||
| // Call Closure | ||||
| let myFullName = fullName("Sergey", "Kargopolov") | ||||
| print("My full name is \(myFullName)") | ||||
|  | ||||
| let myDictionary = [String:String]() | ||||
| // Another way to create an empty dictionary | ||||
| let myDictionary2:[String:String] = [:] | ||||
| // Keys in dictionary can also be of type Int | ||||
| let myDictionary3 = [Int:String]() | ||||
|  | ||||
| var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"] | ||||
| // print to preview | ||||
| print(myDictionary) | ||||
| // Add a new key with a value | ||||
| myDictionary["user_id"] = "f5h7ru0tJurY8f7g5s6fd" | ||||
| // We should now have 3 key value pairs printed | ||||
| print(myDictionary) | ||||
|  | ||||
| var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"] | ||||
| // Loop through dictionary keys and print values | ||||
| for (key,value) in myDictionary { | ||||
|     print("\(key) = \(value)") | ||||
| } | ||||
|  class Friend { | ||||
|     let name : String | ||||
|     let age : Int | ||||
|      | ||||
|     init(name : String, age: Int) { | ||||
|         self.name = name | ||||
|         self.age = age | ||||
|     } | ||||
| } | ||||
|  | ||||
|  var friends:[Friend] = [] | ||||
|          | ||||
|         let friend1 = Friend(name: "Sergey", age: 30) | ||||
|         let friend2 = Friend(name: "Bill", age: 35) | ||||
|         let friend3 = Friend(name: "Michael", age: 21) | ||||
|          | ||||
|         friends.append(friend1) | ||||
|         friends.append(friend2) | ||||
|         friends.append(friend3) | ||||
|          | ||||
|         printFriends(friends: friends) | ||||
|          | ||||
|         // Get sorted array in descending order (largest to the smallest number) | ||||
|         let sortedFriends = friends.sorted(by: { $0.age > $1.age }) | ||||
|         printFriends(friends: sortedFriends) | ||||
|          | ||||
|         // Get sorted array in ascending order (smallest to the largest number) | ||||
|         let sortedFriendsAscendingOrder = friends.sorted(by: { $0.age < $1.age }) | ||||
|         printFriends(friends: sortedFriendsAscendingOrder) | ||||
|  | ||||
|  | ||||
|  func printFriends(friends: [Friend]) | ||||
|     { | ||||
|         for friendEntry in friends { | ||||
|             print("Name: \(friendEntry.name), age: \(friendEntry.age)") | ||||
|         } | ||||
|     } | ||||
|  | ||||
| import UIKit | ||||
| class ViewController: UIViewController  { | ||||
| override func viewDidLoad() { | ||||
|     super.viewDidLoad() | ||||
| } | ||||
| override func viewWillAppear(_ animated: Bool) { | ||||
|     super.viewWillAppear(animated) | ||||
|      | ||||
|     // Create destination URL  | ||||
|     let documentsUrl:URL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL! | ||||
|     let destinationFileUrl = documentsUrl.appendingPathComponent("downloadedFile.jpg") | ||||
|      | ||||
|     //Create URL to the source file you want to download | ||||
|     let fileURL = URL(string: "https://s3.amazonaws.com/learn-swift/IMG_0001.JPG") | ||||
|      | ||||
|     let sessionConfig = URLSessionConfiguration.default | ||||
|     let session = URLSession(configuration: sessionConfig) | ||||
|   | ||||
|     let request = URLRequest(url:fileURL!) | ||||
|      | ||||
|     let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in | ||||
|         if let tempLocalUrl = tempLocalUrl, error == nil { | ||||
|             // Success | ||||
|             if let statusCode = (response as? HTTPURLResponse)?.statusCode { | ||||
|                 print("Successfully downloaded. Status code: \(statusCode)") | ||||
|             } | ||||
|              | ||||
|             do { | ||||
|                 try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl) | ||||
|             } catch (let writeError) { | ||||
|                 print("Error creating a file \(destinationFileUrl) : \(writeError)") | ||||
|             } | ||||
|              | ||||
|         } else { | ||||
|             print("Error took place while downloading a file. Error description: %@", error?.localizedDescription); | ||||
|         } | ||||
|     } | ||||
|     task.resume() | ||||
|      | ||||
|   } | ||||
| } | ||||
|  | ||||
|   do { | ||||
|              | ||||
|             // Convert JSON Object received from server side into Swift NSArray. | ||||
|             // Note the use "try" | ||||
|             if let convertedJsonIntoArray = try JSONSerialization.JSONObjectWithData(data!, options: []) as? NSArray { | ||||
|             } | ||||
|              | ||||
|         } catch let error as NSError { | ||||
|             print(error.localizedDescription) | ||||
|         } | ||||
|  | ||||
| DispatchQueue.global(qos: .userInitiated).async { | ||||
|             // Do some time consuming task in this background thread | ||||
|             // Mobile app will remain to be responsive to user actions | ||||
|              | ||||
|             print("Performing time consuming task in this background thread") | ||||
|              | ||||
|            DispatchQueue.main.async { | ||||
|                 // Task consuming task has completed | ||||
|                 // Update UI from this block of code | ||||
|                 print("Time consuming task has completed. From here we are allowed to update user interface.") | ||||
|             } | ||||
|         } | ||||
|  | ||||
| import UIKit | ||||
| class ViewController: UIViewController { | ||||
|      | ||||
|     override func viewDidLoad() { | ||||
|         super.viewDidLoad() | ||||
|         // Do any additional setup after loading the view, typically from a nib. | ||||
|          | ||||
|         let button = UIButton(type: UIButtonType.system) as UIButton | ||||
|          | ||||
|         let xPostion:CGFloat = 50 | ||||
|         let yPostion:CGFloat = 100 | ||||
|         let buttonWidth:CGFloat = 150 | ||||
|         let buttonHeight:CGFloat = 45 | ||||
|          | ||||
|         button.frame = CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight) | ||||
|          | ||||
|         button.backgroundColor = UIColor.lightGray | ||||
|         button.setTitle("Tap me", for: UIControlState.normal) | ||||
|         button.tintColor = UIColor.black | ||||
|         button.addTarget(self, action: #selector(ViewController.buttonAction(_:)), for: .touchUpInside) | ||||
|          | ||||
|         self.view.addSubview(button) | ||||
|     } | ||||
|      | ||||
|     func buttonAction(_ sender:UIButton!) | ||||
|     { | ||||
|         print("Button tapped") | ||||
|     } | ||||
|      | ||||
|     override func didReceiveMemoryWarning() { | ||||
|         super.didReceiveMemoryWarning() | ||||
|         // Dispose of any resources that can be recreated. | ||||
|     } | ||||
|      | ||||
|      | ||||
| } | ||||
|  | ||||
| import UIKit | ||||
| class ViewController: UIViewController { | ||||
|      | ||||
|     override func viewDidLoad() { | ||||
|         super.viewDidLoad() | ||||
|          | ||||
|         //Create Activity Indicator | ||||
|         let myActivityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray) | ||||
|          | ||||
|         // Position Activity Indicator in the center of the main view | ||||
|         myActivityIndicator.center = view.center | ||||
|          | ||||
|         // If needed, you can prevent Acivity Indicator from hiding when stopAnimating() is called | ||||
|         myActivityIndicator.hidesWhenStopped = false | ||||
|          | ||||
|         // Start Activity Indicator | ||||
|         myActivityIndicator.startAnimating() | ||||
|          | ||||
|         // Call stopAnimating() when need to stop activity indicator | ||||
|         //myActivityIndicator.stopAnimating() | ||||
|          | ||||
|          | ||||
|         view.addSubview(myActivityIndicator) | ||||
|     } | ||||
|      | ||||
|     override func didReceiveMemoryWarning() { | ||||
|         super.didReceiveMemoryWarning() | ||||
|     } | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user