2017년 4월 12일 수요일

itunes connect 앱 내 결제 기능 적용 시 알아두면 좋은 팁

1. itunesconnect 의 미리 작성을 해야 한다.

앱에서 인 앱 결제 테스트를 진행할 시 앱 상품에 대한 데이터를 못가져오는 경우가 발생하는 이유는
(itunesconnect 의 Contact Info, Bank Info, Tax Info) 정보가 작성되어 있지 않을 경우입니다.
모든 정보를 입력하고 서명을 해야만 제대로 인 앱 결제 테스트가 됩니다.
만일 정보를 입력하지 않은상태에서 인 앱 결제기능을 넣고 심사를 맡길경우
심사에서 "결제 상품 버튼을 클릭했는데 작동하지 않는다"
라는 멘트와 함께 심사 거부가 될 수 있습니다.

<아래 이미지 참조>

2. itunes connect에서 앱 내구입 메뉴에 상품을 등록하는데 이것 또한 심사가 필요하다


3. "개발자가 판매를 거부함" 이라는 상태글이 나올 경우

판매용으로 승인됨 이항목을 체크 안해서 그럽니다. 꼭 체크하세요
심사가 승인 되었음에도 저 항목이 체크 되어 있지 않으면 앱에서 결제창 뜨지 않습니다.
체크하셔야 결제창이 뜹니다 (체크후 8시간 정도 지나니 결제창이 뜨더군요)












4. "개발자의 조치가 필요함" 이건 표시이름의 문제입니다. 다른거 만지지 마세요

심사를 하고 나서 간혹 거부 사유가 "개발자의 조치가 필요함"이라고 뜨는 경우가 있는데
이는 상품의 *표시 이름 에 문제가 있어서 그런듯 합니다. 수정해서 다시 심사하세요

2017년 4월 7일 금요일

구조체와 클래스(struct & class) @@ in Swift3.0


구조체와 클래스


1 - 1 구조체 선언

구조체 이름은 CamelCase 멤버이름은 cameBack 방식으로 지정

struct Person {

  var name : String

  var age : Int

}

1 - 2 새로운 구조체 변수 선언

새로운 구조체 변수를 선언하는 방법은 일반 변수와 동일

구조체 멤버의 값을 읽거나 할당하기 전에 반드시 유효한 값으로 초기화 해야한다.

그러므로 선언과 동시에 초기화하거나 멤버를 선언할 때 기본값을 지정

  var someone = Person(name : "mary", age: 0)

  print(someone.name)
  print(someone.age)

  someone.name = "John"
  someone.age = 3 

* 멤버 값 변경하려면 구조체를 var 로 선언 let 으로 선언 시 읽을 수 있지만 변경 시 컴파일러 오류 발생





2 - 1 클래스

클래스는 선언과 구현이 분리되어 있지 않다. Java, C# 와 동일한 방식으로 하나의 파일에서 클래스를 구현

동일한 모듈에 있는 클래스를 자동으로 인식할 수 있으므로 파일을 임포트할 필요가 없다

만일 다른 모듈에 있는 클래스를 사용하려면 해당 모듈을 임포트 하여야 한다.




2 - 2 클래스 선언

클래스는 class 키워드로 선언

class 클래스이름 : 상위 클래스 이름 {

  속성목록

  메소드 목록

}

* 상위 클래스 이름 생략 가능, 상위 클래스 가 없는 클래스는 다른 클래스의 상위 클래스 역할을 수행하는 기초 클래스가 된다.


class Person {
 
  var name = ""

  var age = 0

  func say () {

    print("Hello \(name)")

  }
}

2 - 3 클래스 초기화

클래스는 생성자를 직접 구현하지 않을 경우 파라미터가 없는 기본 생성자를 자동으로 생성한다.

앞에서 구현한 Person 클래스도 생성자를 구현하지 않았기 때문에 기본생성자가 자동으로 생성된다

새로운 Person 인스턴스는 다음과 같은 생성자 문법으로 생성할 수 있다.

let p = Person()

예)

struct Resolution{
   var width = 10
   var height = 10
}

class Person {
   // 구조체를 파라미터로 사용 가능 
  var someone =  Resolution()

  var name = ""

  var age = 0

  func say () {

    print("Hello \(name)")

  }
}

let viewMode = Person()

print (viewMode.name)
print (viewMode.age)
print (viewMode. someone.height) //  10



* 인스턴스

인스턴스 = 선언한 클래스나 구조체를 가지고 실제 값을 만드는것

설계도로 만든 건물 = 인스턴스
설계도 = 클래스, 구조체




3. 구조체와 클래스의 차이

구조체 =  복사된 종이

struct Resolution{
   var width = 10
   var height = 10
}

var someone =  Resolution()

var otherSomeonesomeone
otherSomeone.height = 20


someone.height    // 10
otherSomeone.height   //20

*  복사된 종이의 값만 바뀌기 때문에 원본은 바뀌지 않음


클래스 = 별명

별명이 수십 수백개여도 결국 이름은 하나

class Person {

  var name = "testname"

  var age = 3

}

let someone = Person()
someone.name = "mary"
someone.age = 30

let otherSomeone = someone
otherSomeone.age = 40

someone.age     // 40
otherSomeone.age   //40






추천 게시물

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

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