tag:blogger.com,1999:blog-2293558118909276090.post3148745552889955455..comments2023-03-30T22:28:17.097+09:00Comments on Seorenn SIGSEGV: Swift - 프로퍼티(Properties)Seorennhttp://www.blogger.com/profile/05194885306930554654noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-2293558118909276090.post-38431282307135891512017-08-10T15:58:32.235+09:002017-08-10T15:58:32.235+09:00지적해 주신 김에 내용을 슬쩍 업데이트 했습니다. ;-)지적해 주신 김에 내용을 슬쩍 업데이트 했습니다. ;-)Seorennhttps://www.blogger.com/profile/05194885306930554654noreply@blogger.comtag:blogger.com,1999:blog-2293558118909276090.post-25185976930276526812017-08-10T15:35:55.267+09:002017-08-10T15:35:55.267+09:00xcode(8.3.3), swift(3.1)에서 class에서도 static propert...xcode(8.3.3), swift(3.1)에서 class에서도 static property를 사용할 수 있네요. Seorenn님의 블로그 항상 감사하는 마음으로 읽고 있습니다. 진심으로 감사드립니다.gonzales_eatnoreply@blogger.comtag:blogger.com,1999:blog-2293558118909276090.post-3007652355393884352017-08-01T16:17:36.968+09:002017-08-01T16:17:36.968+09:001. 클래스에서 정의한 print 메소드 내에서 Swift의 내장 함수인 print()를 ...1. 클래스에서 정의한 print 메소드 내에서 Swift의 내장 함수인 print()를 호출하려 하는데 아무래도 의도대로가 아니라 클래스 내에 정의된 print 메소드를 재귀호출하려 하는 것 같습니다. print 메소드의 이름을 다른 것으로 바꿔보시면 알 수 있으리라 생각됩니다.<br /><br />2. read-write property 를 override 하는 경우이니 setter 역시 구현해 주어야 합니다. setter 가 없기 때문에 read-only 로 해석하게 됩니다. getter 생략형은 read-only computed property를 간단하게 구현할 수 있도록 제공하는 특수한 방법일 뿐입니다.Seorennhttps://www.blogger.com/profile/05194885306930554654noreply@blogger.comtag:blogger.com,1999:blog-2293558118909276090.post-86871306563263180902017-08-01T14:49:20.914+09:002017-08-01T14:49:20.914+09:00class DoublingClass {
var a = 0
var b = 0
...class DoublingClass {<br /> var a = 0<br /> var b = 0<br /> var data:Int {<br /> get { <br /> return a + b<br /> }<br /> set (value) { <br /> self.a = value*2<br /> self.b = value*2<br /> }<br /> }<br /> <br /> init() {}<br />}<br /><br />class DdablingClass: DoublingClass {<br /> override var data: Int {<br /> get {<br /> return (a+b)*2<br /> }<br /> }<br />}<br /><br />위와같이 코드를 넣어 진행해봤습니다. getter의 생략형을 사용하지 않아서 read-write property일 것이라고 예측했습니다. 그러나 두 번째 class의 상속하는 과정에서 Cannot override mutable property with read-only property 'data' 라는 오류를 내는 것을 보면 getter가 read-only로 정의된 것 같습니다.gonzales_eathttp://yongwoo.1px.krnoreply@blogger.comtag:blogger.com,1999:blog-2293558118909276090.post-90198603882808963322017-08-01T13:28:28.860+09:002017-08-01T13:28:28.860+09:00class MyDate {
var year = 0
var name: Str...class MyDate {<br /> var year = 0<br /><br /> var name: String {<br /> return "\(self.year)"<br /> }<br /> func print() { //error<br /> print(self.name)<br /> }<br />}<br /><br />코드를 생략해서 에러나는 부분을 표시하였습니다. Argument passed to call that takes no arguments. 라고 표시됩니다. '인수(매개변수)를 가지지 않는 호출에 전달된 프로퍼티' 정도로 이해했습니다. 함수 print() 가 작동 안 하는 이유를 도저히 모르겠습니다.Gonzales_eathttp://yongwoo.1px.krnoreply@blogger.com