본문 바로가기

728x90

난 iOS개발자

(53)
PhaseScriptExecution failed with a nonzero exit code Release 를 위해 Archive를 시도 하는 중 에러 발생 에러문구 “PhaseScriptExecution failed with a nonzero exit code” 위 문구와 함께 수십줄의 로그가 함께 나타나는데, 보기도 힘든 파일의 경로 로그들과 어쩌구 저쩌구 pod으로 추가한 lib들을 거론한다. 당황하여 내가 pod으로 추가한 lib들이 문제인가 싶지만 의외로 해결법은 간단했다. Solution 로그에서 .sh파일의 이름과 경로를 찾는다. Terminal을 실행해서 해당 파일의 경로로 이동하고 chmod +x 파일의 이름.sh 입력해준다. 그러고 다시 시도하면 잘 작동한다. PS1 더 검색을 해봤는데 Build Phases의 For install builds only에 체크를 해두면 해결이 ..
String Extension 문자열 자르기1 extension String { func substring(from: Int, to: Int) -> String { guard count > from, from >= 0, to >= from else { return "" } let startIndex = index(self.startIndex, offsetBy: from) let endIndex = index(self.startIndex, offsetBy: to + 1) return String(self[startIndex.. Character { return self[self.index(self.startIndex, offsetBy: index)] } subscript(_ range: Range) -> String { let from..
Closure와 객체의 생명주기의 관계 Closure의 중첩 시 weak은 어디까지 self를 붙잡아(강한 참조) 두는가? 표현할 수 있는 적절한 말이 무엇인지는 잘 모르겠다. Swift의 closure를 사용할 때 Capturing이 되면서 self(객체)의 강한 참조가 발생한다. 이때 강한 참조 인해 발생하는 문제들을 피하기 위해 weak을 사용하여 약한 참조 형태로 self에 접근하는 것이 일반적인 방법이다. 그렇다면 중첩된 closure는 weak의 위치에 따라 어떻게 동작할까? 만약 아래와 같은 코드를 작성했을 때 weak이 사용되는 위치에 따라 어떤 결과가 나오는지 확인해보려 한다. Case 1. escaping Closure를 받는 메서드를 호출했을 때 위치 1을 보면 loadContentFromSource를 호출하는 첫 번째 클..

728x90