Swift로 만든 ToDo 앱 개발 튜토리얼을 보면서 ToDo 앱을 만들었어요.
Swift로 만든 ToDo 어플리케이션 개발 튜토리얼
튜토리얼의 원래 보도는 2015/6, Xcode, Swift 버전도 낡아서 움직이지 않고 넘어진 부분을 열거했다.swift의 기초 지식이 없으면 어쨌든 넘어지면 해결된다.
- 비헤이비어 검증 환경 -
Mac OS X El Capitan 10.11.4
Xcode 7.3.1
Swift 2.2
1.pod 설치 중지
OS와 Xcode를 업데이트했기 때문인 것 같지만, CocoaPods를 사용하여 Magical Record를 설치했을 때pod 설치가 끝나지 않습니다.
$ pod install
Updating local specs repositories
이렇게 하면 된다.$ pod repo remove master
$ pod setup
$ pod install
참조: pod install은 영원히 끝나지 않습니다.2. CoreData+MagicalRecord.h file not found
컴파일 오류
Magical Record의 파일 이름이 바뀐 것 같아서 import의 파일 이름을 변경했습니다.
TodoApp-Bridging-Header.h
#import "CoreData+MagicalRecord.h"
↓TodoApp-Bridging-Header.h
#import "MagicalRecord.h"
참조: Swift를 배우기 위해 ToDo 앱을 만들어 봤습니다.상기 링크된 기사에서도 같은 튜토리얼에 걸려 넘어진 부분(본 기사의 일부 내용도 중복됨)을 열거하였으며, 원본도 GitHub에 업로드되어 매우 참고 가치가 있다.
3.Downcast from 'UITableViewCell?' to 'UITableViewCell' only unwraps optionals; did you mean to use '!'?
컴파일 오류
Xcode7부터 dequereusableCellWithIdentifier는 항상 선택되지 않은 형식으로 되돌아오는 것 같습니다
TodoListViewController.swift
let cell = tableView.dequeueReusableCellWithIdentifier("TodoListItem") as! UITableViewCell
↓TodoListViewController.swift
let cell = tableView.dequeueReusableCellWithIdentifier("TodoListItem")
참조: Swift를 배우기 위해 ToDo 앱을 만들어 봤습니다.4.Value of optional type 'UITableViewCell?' not unwrapped; did you mean to use '!' or '?'?
3. 수정을 한 후 새로운 컴파일 오류가 발생했습니다.
TodoListViewController.swift
let cell = tableView.dequeueReusableCellWithIdentifier("TodoListItem")
cell.textLabel!.text = todoEntities[indexPath.row].item
return cell
↓ 변수 셀!덧붙이다TodoListViewController.swift
let cell = tableView.dequeueReusableCellWithIdentifier("TodoListItem")
cell!.textLabel!.text = todoEntities[indexPath.row].item
return cell!
참조: Swift를 배우기 위해 ToDo 어플리케이션을 만들어 보았습니다: GitHub5.CoreData: warning: Unable to load class named 'TodoApp.Todo' for entity 'Todo'. Class not found, using default NSManagedObject instead.
실행 중 오류 발생
EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)
TodoListViwController.swiftfunc tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return todoEntities.count // ここでEXC_BAD_INSTRUCTION...
}
todo Entities가 nilEXC_BAD_INSTRUCTION..
이어서 떨어졌어요.콘솔CoreData: warning: Unable to load class named 'TodoApp.Todo' for entity 'Todo'. Class not found, using default NSManagedObject instead.
오류가 CoreData 오류인 것 같습니다.해결 방법
CoreData의 Entity 설정에서 TodoApp.xcdatamodeld를 선택하고 데이터 모델 inspector에서 기본 모듈 값 "Current Product Module"삭제
↓ 모듈의 Current Product Module 제거
이렇게 움직였어.
참조: CoreData: warning: Unable to load class named
Swift·Xcode 잡감
Reference
이 문제에 관하여(Swift로 만든 ToDo 앱 개발 튜토리얼을 보면서 ToDo 앱을 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dondoko-susumu/items/8c76f01562ee5982fa8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)