Programming/iOS
-
swift] fp - LowHighProgramming/iOS 2020. 3. 5. 15:27
LowHigh 랜던으로 생성된 1~ 100 사이의 값(정답)과 사용자가 입력한 값을 비교하는데, 정답보다 입력한 값이 작으면 "Low", 크면 "High", 정답이면 "Correct!" 와 입력횟수를 출력 예) 정답값 = "20" , 사용자 입력값 = "21" -> print("High") 리펙토링 전 let answer = Int(arc4random() % 100) + 1 // 1~ 100 랜덤값 var count = 0 while true { let userInput = readLine() guard let unwrappedInput = userInput, let inputNumber = Int(unwrappedInput) else { print("Wrong") continue } // 정답일때, w..
-
cocoaPods] 외부 라이브러리 제거후 다시 설치하기Programming/iOS 2020. 3. 4. 13:39
일단, 다시 제거후 설치 해야만 했던 에러를 살펴보자 Xcode Version: 11.3.1 / iOS 13.3.1 ErrorMessage] dyld: Library not loaded: @rpath/FBLPromises.framework/FBLPromises .... ... Reason: no suitable image found. 참고자료 https://stackoverflow.com/questions/60096258/library-not-loaded-rpath-fblpromises-framework-fblpromises-ios-13-3-1 Library not loaded: @rpath/FBLPromises.framework/FBLPromises iOS 13.3.1 My app crashes on ..
-
swift] fp - fizz buzz 리펙토링Programming/iOS 2020. 3. 3. 18:27
FizzBuzz 프로그램? 1 ~ 100 까지의 숫자를 출력하되, 3으로 나누어 떨어진다면 fizz, 5로 나누어 떨어진다면 buzz, 3과 5 둘 다 나누어 떨어지면 fizzbuzz를 출력하는 프로그램. 리펙토링 전 var i = 1 while i String{ if(i % 3 == 0){ return "fizz" } return "" } func buzz(_ i : Int) -> String{ if(i % 5 == 0){ return "buzz" } return "" } func fizzbuzz(_ i: Int) -> String { let result = fizz(i) + buzz(i) return result.isEmpty ? "\(i)" : result } func loop(min: Int, m..
-
swift] fp - 함수형 프로그래밍 기초Programming/iOS 2020. 3. 3. 18:18
함수형 프로그래밍이란? 함수를 중심으로 Side-Effect 가 없도록 만드는 프로그래밍 순수함수 특정 input에 대해서 항상 동일한 output 을 반환하는 함수 함수 수행과정에서 외부의 값을 참고하거나, 외부의 값을 변경하면 안된다. (== side-effect 가 없다) 1급객체 함수형 프로그래밍에서는 함수를 1급객체로 취급한다. 1급 객체란, 함수의 파라미터로 전달되거나 리턴값으로 사용될 수 있는 객체를 의미한다, 고차함수(Higher-Order Function) 함수를 파라미터로 받거나 함수를 리턴하는 함수 Ex) Array.filter() 함수를 반환하는 함수 함수의 실행결과가 함수이기때문에, 두번 호출하여 값을 얻을 수 있다. func multiply(_ a: Int) -> (Int) ->..
-
Timer 만들기Programming/iOS 2019. 11. 6. 18:14
/* start 인 상태인가 */ var isStarting = false /* 시작 버튼을 누른 그 시점의 시간 */ var startTime = 0.0 /* 경과된 시간 */ var elapsed = 0.0 /* 일정간격으로 어떤 동작을 해야할때 사용 */ var timer = Timer() [Start] 버튼을 누르면 Label 의 숫자가 시간만큼 올라가는 Timer 일때, 시간의 계산은 startTime, elapsed 두 변수를 이용해 다음과 같이 한다. func startStropButton을눌렀을때(){ if isStarting { // stop 을 누른 상태 timer.invalidate() } else { // start 를 누른 상태 startTime = Date().timeInterv..
-
Struct & ClassProgramming/iOS 2019. 11. 6. 17:54
Struct : value type Class : reference type 차이점1. struct 는 값이 복사되고, class 는 참조가 된다. 차이점2. struct 가 class 보다 생성이 빠르다. 차이점3. struct 는 상속이 불가능하다. struct TestStruct { var name: String var age: Int init(name: String, age: Int) { self.age = age self.name = name } } class TestClass { var name: String var age: Int init(name: String, age: Int) { self.age = age self.name = name } } 변수와 초기화 함수를 같은 형태로 정의했을때..