우수 답변
조기 종료가 필요하므로 항상 guard
를 사용할 수는 없습니다. 부정 된 if let
구조는 없지만 코드 스 니펫은 가장 많이 놓친 흥미로운 경우를 표시하지 않습니다.
코드가 실제로 필요하지 않은 경우 date
if
이후에는 if let
를 사용할 필요가 없습니다. 테스트 만하면됩니다. 표현식이 nil
인 경우 (참고 : 관련성과 간결성을 위해 Swift3 형식으로 단순화 된 코드) :
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
하지만 코드가 if
다음에 date
를 사용하려면 (그렇지 않으면 이름을 지정하는 이유) 조금 더 어색한 것이 필요합니다. 결국 if
케이스에서 무언가를 확인하십시오.
let date: Date
if let existingDate = UserDefaults.standard.objectForKey("first\_launch\_date") {
date = existingDate
} else {
date = Date()
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
정말 실망스러운 경우 그러나 나는 else if
체인에서 if let
를 사용할 때입니다. 종종 (반에 가까운 시간?) 조건 체인의 논리는 일련의 부정적인 결과를 테스트하고 다른 경우가 하나의 긍정적 인 조건이되도록합니다. 그러나 조건 중 하나에 if let
가 필요한 경우 논리를 긍정적 인 테스트로 표현해야하며 else 케이스는 부정적입니다.
의사 코드의 예 :
if error {
failure
} else if unexpected-format {
failure
} else if parse-failed {
failure
} else if result is a {
handle result a
} else {
handle result b
}
이것을 신속하게 구현하려면 if let result = parse()
와 같이 구문 분석 테스트 중에 선택 사항을 풀어야합니다. 실패-실패-성공에서 실패-성공-실패로 논리를 왜곡해야합니다. 더 빠른 의사 코드를 사용한 예 :
if error {
failure
} else if unexpected-format {
failure
} else if let result = parse() {
if result is a {
handle result a
} else {
handle result b
}
} else {
failure
}
네. 잠재적으로 if not let
는 원래 논리를 허용합니다.
if error {
failure
} else if unexpected-format {
failure
} else if not let result = parse() {
failure // unlike if let, result not available to this code block
} else if result is a { // however it would be to everything after
handle result a
} else {
handle result b
}
누군가는 신속한 진화를위한 제안서를 작성해야합니다.
Answer
- 무료 Apple 개발자 계정에 가입
- 오늘부터 이해 (2016 년 6 월 4 일) Swift 3.0에 대한 자습서는 공개 될 예정이므로 없습니다. 다음 주 WWDC에서. 저자가 Swift 3.0에 대한 새로운 책과 튜토리얼을 준비하는 데는 최소 3 개월이 걸립니다. 단, 최신 버전의 Swift로 책을 올리는 데 매우 부지런하고 적극적인 Erica Sadun은 예외입니다.
- {New} 오늘 (2016 년 6 월 13 일) Apple은 초보자가 Swift를 배우기에 매우 좋은 방법 인 iPAD 용 Playgrounds를 발표했습니다. 또한 Apple은 전체 언어 초보자를위한 또 다른 좋은 리소스 인 \_App Development with Swift\_라는 새로운 eBook을 출시했습니다.
- Swift 1.0에서는 어떤 것도 피하고 대부분은 멀리하세요. 2.0 및 2.1에 대한 정보를 확인하고 Swift 2.2 이상의 소스에서 정보를 찾으십시오. 또한 2015 년 11 월 이전의 최신 정보가 포함 된 자료는 피하십시오. 이는 Swift 3.0이 더 출시 된 후 몇 달 후에 변경 될 것입니다. 구문과 라이브러리가 크게 변경되어 이전 버전으로 작성된 자습서를 따르려는 시도가 어려울 수 있습니다.
- iBooks에서 Apple의 Swift 설명서 사본을받습니다. 이것들은 Swift 3.0의 최신 버전이어야합니다.
- 매뉴얼 찾아보기
- 이전에 다른 언어로 프로그래밍 한 적이 있다면 Apple 및 타사와 같은 Swift 특정 구성에 더주의를 기울이십시오. 소프트웨어 예제는 그것들을 사용할 것입니다.
- 열거
- 선택 사항
- 오류 검사
- 종결 (구문 및 간결한 내용은 파악하기 어려울 수 있음)
- 구조체 대 클래스 대 프로토콜 대 열거
- 프로토콜 지향 설계
- 참조 계수
- 문자열
- 제네릭
- Swift 라이브러리
- 언어의 기능적 측면 (폐쇄 및 라이브러리 관련)
- Swift에서 1-2 개의 eBook (또는 실제 책)을 탐색 및 / 또는 구매합니다. 좋은 책이 여러 권 있습니다.
- iOS 대 Mac OS 프로그래머를 기대하는 더 많은 정보와 튜토리얼이 있습니다.
- 게임이나 생산성에 더 관심이 있는지 확인합니다. 그중 하나에 더 집중하세요. 몇 권의 책과 게임 향상을 위해 작성된 튜토리얼이 있으며 어떤면에서는 게임이 배우기 더 쉬운 곳이라고 생각합니다.
- 애플 애플리케이션을 작성한 적이 없다면 걱정없이 Swift를 배우는 것이 좋습니다. Objective-C에 대한 많은 것. 면책 조항 : 저는 Objective-C를 매우 싫어합니다. Objective-C에 레거시 코드가 있다면 반드시 Objective-C와 Swift를 연결하고 상호 사용하는 방법에 대해 알아보십시오. Swift Tutorials는 여러분이 알아야 할 기초를 제공 할 것이며 많은 / 대부분의 Cocoa 라이브러리 / 프레임 워크가 모두 Objective-C로 작성 되었기 때문에 완전히 벗어날 수 없습니다.
- 신용 카드가있는 경우 친구에게 지불하거나 Lynda에서 가입하세요. com 을 한 달 동안 무료로 사용하고 Simon Allardice 및 기타 Swift에서 제공하는 모든 동영상을 시청할 수 있습니다 (필요한 경우 일반 프로그래밍 개념도 포함).
- Pluralsight. com .
- Apple Deve 사이트에서 모든 참조 문서와 x-Code에서 액세스하는 방법을 찾아보십시오. 바라건대, 이전에 X-Code를 사용했으면합니다. 그렇지 않다면 튜토리얼은 당신이 갈 수 있도록 충분한 정보를 제공했을 것입니다. 이것은 중요합니다.
- RayWenderlich로 이동합니다. com 및 가능한 모든 Swift 비디오 및 eBook을 시청하십시오. 모든 책을 보려면 여기에서 등록 및 / 또는 자료를 구입할 수 있습니다. 잘 쉬었다 고 고소하고 실제로 튜토리얼을 직접 수행하세요 . 이것이 핵심입니다.
- Swift에서 과거 Apple WWDC 동영상을 시청하세요. Apple Swift 설명서를 더주의 깊게 읽으십시오.
- 자신의 응용 프로그램을 작성해보십시오. 검토하거나 더 잘 배워야 할 장소가있는 곳이 표시됩니다.
- iTunes University / Stanford Course on iOS 개발을 Swift에서 따라 해보세요. 계속할 수 있는지 확인하십시오. 다른 사람들이 말하는 것과는 반대로 초보자를위한 과정이 아닙니다.
- YouTube에서 다양한 동영상 자습서를 많이 봤습니다. 나에게 대부분의 경우 그들에 대한 유일한 좋은 점은 그들이 자유 롭다는 것입니다. 앞서 설명한 튜토리얼과 비교해 보면 왜 시간을 낭비했는지 궁금 할 것입니다. 예외가 있지만이를 살펴 보는 데 많은 시간을 낭비하게됩니다. 사람들이 자신 만의 동영상을 만들고 싶어한다는 점에 감사합니다. 나는 이것을 한 번 시도했다. 그래서 저는 전문가들이 일을 명확하고 이해하기 쉽게 만드는 데 얼마나 많은 에너지를 쏟았는지 압니다.
- 이제 무료 Youtube 콘텐츠를 무시한 후 해당 동영상 몇 개를보고 누락 된 정보를 채우는 데 도움이되는지 확인 . 다른 관점을 갖는 것이 좋습니다.
- Swift 온라인 뉴스 레터를 구독하세요. RayWenderlich는 시작하기에 좋은 목록을 가지고 있습니다.
- 이 주제에 대한 나와 다른 게시물을 읽어보세요. 질문 / 답변을 병합하는 방법을 알아야 할 것 같습니다.