2017년 10월 18일 수요일

Xcode 퀵헬프 사용 & 마크업 적용한 주석 사용

Xcode 에는 레퍼런스 문서의 요약된 내용을 보여주는 퀵헬프라는 기능이 있습니다.
코드작성중 레퍼런스 문서로 이동하지 않고 데이터타입이나 메서드 등의 간단한 정보를 확인할 수있는 아주 유용한 기능입니다.

<퀵헬프 보기>

원하는 항목(변수, 상수, 함수, 메서드, 타입 등등) 위에 마우스 커서를 놓고

option 키를 누른 상태로 클릭 or command + option + 2

통해 퀵헬프를 확인 가능합니다.


<마크업 형식에 따라 주석작성>

원하는 항목 (상수, 변수, 함수 등)에 마우스 커서를 위치한 후 

command + option + / 


ex)
enum HelloError : Error{
    case noName
    case unknown
}

HelloError 위에 마우스 커서를 위치 한 후 단축키를 누르면 (command + option + / )


/// <#Description#>
///
/// - noName: <#noName description#>
/// - unknown: <#unknown description#>
enum HelloError : Error{
    case noName
    case unknown
}

이렇게 마크업이 적용된 주석이 생성됩니다.

주석의 내용을 바꾸어 주고 퀵헬프 단축키를 누르면

/// 오류 타입의 열거형입니다.
/// - noName: 이름을 전달받지 못했을 때 발생하는 오류
/// - unknown: 알 수 없는 오류
enum HelloError : Error{
    case noName
    case unknown
}

원하는 항목 커서위치 > option 키를 누른 상태로 클릭 or command + option + 2




이렇게 퀵헬프 창에 나타납니다.


더 자세한 내용은 Markup Formatting Reference 를 참조하세요


출처 : 야곰님의 스위프트 프로그래밍


2017년 10월 17일 화요일

Data Type : Array (배열) @@ Swift 4.0

배열 (Array)

배열은 같은 타입의 데이터를 일렬로 나열한 후 순서대로 저장하는 형태의 컬렉션 타입입니다.

let 키워드 사용해 상수로 선언 시 변경할 수 없는 배열이 되고 var 키워드를 사용해 변수로 선언 시 변경 가능한 배열이 됩니다.


1. 배열의 선언과 생성


대괄호를 사용하여 배열 표현
var names : Array<String> = ["tester", "mary", "john"]

위와 동일한 배열  *[String]은 Array<String>의 축약 표현입니다.
var names : [String] = ["tester", "mary", "john"]

var namesArray : [Any]  = [Any]() //  Any 데이터를 요소로 갖는 빈 배열 생성
var namesArray : [Any]  = Array<Any> // 위 선언과 같은 동작 하는 코드

* 배열의 타입을 정확히 명시 했다면 [] 만으로 빈 배열 생성할 수 있습니다.
var emptyArray : [Any] = []
print(emptyArray.isEmpty)  // true

2. 배열의 사용


var names : Array<String> = ["tester", "mary", "john"]

1)  접근

print(names[2])   //   "john"
print(names[3])   //  에러 발생
print(names.index(of: "john"))  //   2
print(names.index(of: "me"))   // nil
print(names.first)  // "tester"
print(names.last)  //  "john"

2) 삽입

names.insert("tom", at:2)
print(names)  // ["tester", "mary", "tom", "john"]

names.insert(contentsOf : ["won"," ban"], at:4)
print(names)  //   ["tester", "mary", "tom", "john", "won", "ban"]

3) 제거

let firstItem:String = names.removeFirst()
let lastItem:String = names.removeLast()
let indexItem:String = names.remove(at: 1)

print(firstItem)  //  "tester"
print(lastItem)   //  "ban"
print(indexItem)  //  "tom"
print(names)  //   ["mary", "john", "won"]

4) 범위

print(names[0...1])  //  ["tester", "mary"]





출처 : 야곰님의 스위프트 프로그래밍






2017년 10월 16일 월요일

Swift 코드 테스트 할 수 있는 웹사이트 & 모바일

웹사이트


1. IBM Swift SandBox

https://swift.sandbox.bluemix.net/

 :  플레이그라운드와 유사한 모습으로 스위프트 코드 작성 및 실행 가능
    인기있는 스위프트 소스코드를 볼 수 있고 간단한 예제 소스 코드도 많음


2. 구름 IDE

https://ide.goorm.io/

 : 국내의 클라우드 통합 개발 환경, 컨테이너를 생성하여 가상 리눅스 환경에서 프로젝트 관리가 가능하며, 별도의 플러그인 등을 설치하지 않고도 온라인에서 직접 빌드 및 실행 가능
   리눅스 터미널 환경에서 스위프트 패키지 매니저를 사용할 수 있기 때문에 외부 라이브러리를 가져와서 프로젝트도 구현 할 수 있음.
   회원 가입을 하면 내프로젝트를 반영구적으로 저장,관리 할 수 있음
   스위프트 외에도 여러 프로그래밍 언어를 지원하며 Node.js, Spring, JSP, Arduino 등의 개발환경 제공
   클라우드 서버에서 바로 웹 서비스를 실행하여 운영 할 수도 있습니다.


모바일

iPad 용 플레이그라운드

앱스토어에서  Swift Playgrounds 검색 하여 설치

아이패드에서 스위프트 코드를 작성하고 테스트해볼 수 있는 어플리케이션




출처 : 야곰님의 스위프트 프로그래밍 책

2017년 10월 13일 금요일

switch문 @@ Swift4.0

switch 구문 기본

switch 입력 값 {
 case 비교 값 1 :
       실행 구문
 case 비교 값 2:
       실행 구문
       fallthrough  //  switch 구문의 case 를 연속 실행, fallthrough 사용 시 switch 구문을 탈출 하
                                   지 않고 아래 case로 넘어갑니다
 case 비교 값 3, 비교 값 4, 비교 값 5 :  //  한번에 여러 값을 비교할 수 있습니다.
       실행 구문
       break  //  break 키워드를 통해 종료 가능 -> 선택사항
 defult:  //  한정된 범위가 명확하지 않다면 default 는 필수 입니다.
       실행 구문
}

출처 : 야곰님의 스위프트 프로그래밍


2017년 9월 21일 목요일

Application Loader로 앱 업로드 (use Application Loader) @@ in Swift4.0 - Xcode9.0 iOS11

이번 업데이트로 앱을 업로드할 때 원인모를 오류들이 발생하여 Application Loader을
이용해 앱을 업로드했습니다.
매번 업데이트 때마다 문제가 생기니 이 방법에 익숙해지는 것이 좋을듯하여 정리하였습니다.


1. Application Loader 실행

Xcode의 메뉴중에 Open Developer Tool >  Application Loader 을 실행 시킵니다.



실행하면 아래 이미지처럼 나타납니다. 참고로 전 버전에선 "앱 전송" 말고도 "인앱구매" 라는 항목이 있었는데 사라졌네요




일단 Application Loader(어플리케이션 로더) 통해 앱을 전송해서 올리려면 ipa파일이 필요합니다.



2. ipa 파일 생성

ipa 파일 생성 방법은 앱스토어에 앱 업로드 시 사용하는 방법과 같습니다. 
Xcode > Product > Archive 를 실행합니다.

* Archive 가 활성화가 되어있지 않는 상태라면 핸드폰을 연결하여 빌드하고 다시 메뉴를 열어보시면 Archive 가 활성화 됩니다.




아래 화면으로 넘어갔다면 Upload to App Store.. 가 아닌 Export 를 눌러줍니다.


App Store 에 등록한것처럼 몇 가지 선택항목 체크 후 폴더 경로를 정해주면 해당 경로로
ipa 파일이 생성됩니다.



3. Application Loader를 이용한 앱 업로드

이제 처음에 실행했던 Application Loader 에서 선택버튼을 누른뒤 ipa 파일을 선택해주면 업로드가 됩니다.


2017년 8월 16일 수요일

타입 별칭(typealias) 사용 @@ Swift 4.0

typealias


스위프트에서 기본으로 제공하는 데이터 타입이든, 사용자가 임의로 만든 데이터 타입이든 이미 존재하는 데이터 타입에 임의로 다른 이름을 부여 할 수 있다.
 
typealias MyInt = Int
typealias YourInt = Int

let age : MyInt = 100  //  MyInt 는 Int 의 다른 이름입니다.
var year : YourInt = 2080  //  YourInt 는 Int 의 다른 이름입니다.


// MyInt, YourInt 둘다 Int 이기 때문에 같은 타입으로 취급 가능합니다.

age = year

2017년 8월 7일 월요일

Data Type : Dictionary - 딕셔너리 (사전) @@ Swift 4.0

딕셔너리

딕셔너리는 키와 값으로 구성된 요소를 순서 없이 저장하는 컬렉션입니다.
사전과 유사한 구조를 가지고 있으며 키는 단어, 값은 뜻으로 비유할 수 있습니다.

*키 값은 딕셔너리에서 값을 유일하게 식별해야 하기 때문에 하나의 딕셔너리에는 중복된 키가 
존재할 수 없습니다.

1. 종류

 Foundation 컬렉션 : NSDictionary, 가변클래스인  NSMutableDictionary 제공
   - 문자열 키를 사용 하며 저장되는 객체의 자료형 제한을 하지 않음
 Swift 컬렉션에선 Dictionary
   - 참조형식과 값 형식을 모두 저장, 요소의 자료형이 동일해야됨


2. 딕셔너리 기본 구조

  [키1 : 값1, 키2 : 값2, 키n : 값n]
  [:] // 빈 딕셔너리


3. 선언과 초기화

// Swift Dictionary
 let dictionary = ["a" : "SYD", "b" : "LHR", "c" : "GMP"]

// Foundation Dictionary 
 let nsWords : NSDictionary = ["a" : "SYD", "b" : "LHR", "c" : "GMP"]


4. 빈 딕셔너리 선언

 // Swift Dictionary
 let dictionary1 : Dictionary<String, String> = [:]
 let dictionary2 : [String : String] = [:]
 let dictionary3 = [String : String]()

 // Foundation Dictionary 
 let nsDic = NSMutableDictionary()

5. 딕셔너리 요소의 수

 let dictionary = ["a" : "SYD", "b" : "LHR", "c" : "GMP"]
 let dictionaryCount = dictionary.count


6. 요소에 접근

 var dictionary = ["a" : "SYD", "b" : "LHR", "c" : "GMP"]

  - 읽어오기
     let readingDic =  dictionary["a"]  // readingDic = "SYD"
  - 값 업데이트
     dictionary["a"] = "Sydney"
     dictionary.updateValue("updateString", forKey: "b") //메소드 사용
  - 지우기
     dictionary["a"] = nil
     dictionary.removeValue(forKey: "b") //메소드 사용
  
    
 7. 프로퍼티

  isEmpty // 빈 값 = true
  count  //   요소 개수 확인






추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...