아이폰을 USB메모리로 사용하는 예제

2014-11-17
22 Views

아이폰을 USB 메모리처럼 사용할 수 있는 앱 예제를 하나 만들어 보겠습니다.

1) 프로젝트를 생성하고 Project Navigator에서 [Supporting Files]-[info.plist]를 선택하고 속성 목록에서 [Add Row]를 선택하여 새 속성을 추가합니다.

  • Key: [Application supports iTunes file sharing]
  • Value: [YES]

ios-usb-storage1

 

2) 빌드를 해서 실제 폰이나 시물레이터로 실행해보고, iTunes를 열고 [App]탭을 선택하고 [파일공유]항목에서 만든 앱을 선택하면 [‘앱이름’의 도큐멘트]라는 화면이 나옵니다.

iphone-usb-storage2

3) 도큐멘트 하단에 있는 [추가]버튼을 눌러 저장할 파일들을 선택합니다.

iphone-usb-storage3

4) 파일이 추가되었다면 [동기화]버튼을 눌러 아이폰과 동기화를 합니다.  그런데 아무런 소스코드를 추가한 것이 없기 때문에 앱자체에서 목록을 확인할 수 없습니다. 간단하게 TableView를 사용하여 첨부된 파일들을 볼 수 있는 목록을 추가해봅시다.

5) Project Navigator에서 Main.storyboard 파일을 선택하고 화면에 [Table View]를 드래그하여 배치합니다. 배치한 다음 [Control]키를 누른 상태에서 테이블뷰를 아이콘으로 드래그하고 dataSource와 View Controller를 연결하고 delegate와 View Controller를 연결합니다.

iphone-usb-storage

6) 우측 [Connections Inspector]를 선택하면 연결된 Oulets 상태가 나옵니다.

iphone-usb-storage5

7) Project Navigator에서 [ViewController.swift]를 열고 아래와 같이 코드를 추가합니다.

[swift]

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var contents = [String]()

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

let documentsDicrectoryPath = paths.first as String

contents = NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsDicrectoryPath, error: nil) as [String]

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {

return 1

}

 

func tableView(tableView: UITableView, numberOfRowsInSection section : Int) -> Int {

return contents.count

}

 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath : NSIndexPath) -> UITableViewCell {

var cell = UITableViewCell(style: .Default, reuseIdentifier: "myCell")

cell.textLabel.text = contents[indexPath.row]

return cell

}

}

[/swift]

 

Facebook Comments

You may be interested

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁
Swift 3.0
shares11 views
Swift 3.0
shares11 views

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁

MJ Kim - 4월 29, 2017

몇몇 개발자를 만나 개발을 하다보면, 폐쇄(Closure)에 대해 이해를 하지 못해서 간단하게 바로 이해할 수 있는 팁을 정리해본다. 앱을 개발하다보면 https통신을…

[Swift3] UITextview의 keyboard 닫기
Swift 3.0
shares2 views
Swift 3.0
shares2 views

[Swift3] UITextview의 keyboard 닫기

MJ Kim - 4월 29, 2017

스토리보드에서 델리게이트를 선언하고 class에 UITextViewDelegate를 상속받아서 delegate=self를 viewDidLoad에서 설정하면 간단하게 해결되는데 가끔 헷깔려 하는 경우가 있어 적어본다. [crayon-59053d6ce3286229139081/] [crayon-59053d6ce328b706425263/] [crayon-59053d6ce328e014315627/]…

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈
Swift 3.0
shares5 views
Swift 3.0
shares5 views

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈

MJ Kim - 4월 29, 2017

다국어 지원은 우선 Localizable.strings파일을 생성한 다음 언어를 지정한다. 그리고 필자가 자주 사용하는 일부 컨트롤들에 대한 확장(extension)을 추가한 다음 스토리보드에서 사용하는…