2017-12-29 31 views
0

내 클래스는 다음과 같이이다 : 나는 다른 ViewContoller이 클래스를 사용할 때함수에 왜 정의 된 문자열이 아니라 매개 변수로 자신을 포함하는 클래스가 필요합니까?

class MyNewClass { 
    func myNewFunction (paramString : String) -> String { 
     var myString = "" 

     if paramString.caseInsensitiveCompare("A") == ComparisonResult.orderedSame { 
      myString = "The string is A" 
     }else{ 
      myString = "The string is blank" 
     } 
     return myString 
    } 
} 

이 더 problem.But이 없다, 그것은 나에게 이상한 오류를 제공합니다.

나는 내가 MyNewClass에서 정의한 paramStringmyNewFunction()에 "A"를 삽입해야 다른 ViewController

let myString : String = MyNewClass.myNewFunction("A") 

가정하자이 같은 myNewFunction 부르지 만, 나는이

같은 경고가

'문자열'을 'MyNewClass'로 변환 할 수 없습니다.

그냥 왜 StringmyNewFunction()의 매개 변수로 구문 분석 할 수 없습니다. 그리고 왜 myNewFunction() 클래스가 필요합니다 그것의 매개 변수로 MyNewClass입니까?

누군가가

class MyNewClass { 
    static func myNewFunction (paramString : String) -> String { 
     var myString = "" 

     if paramString.caseInsensitiveCompare("A") == ComparisonResult.orderedSame { 
      myString = "The string is A" 
     } else { 
      myString = "The string is blank" 
     } 

     return myString 
    } 
} 

MyNewClass.myNewFunction(paramString: "foo")

처럼 func 전에 MyNewClass의 인스턴스를 시작하지 않고 전화를 할 경우

답변

1

, 당신은 static을 붙일 수 있습니다하십시오 올바른 방향으로 나를 인도 해주십시오 Optinally, MyNewClass의 인스턴스를 생성 할 수 있습니다. 내가 static``사용하는 경우

let myInstance = MyNewClass() 
let myString = myInstance.myNewFunction(paramString: "foo") 
+1

덕분에 너무 helped..I 새로운 swift..thanks 통해 UR 도움 – ken

+0

을 bro..it 내'MyNewClass''static' 수단 무엇인가? – ken

+1

'static' 키워드는 경험이있는 경우'class func/var'와 일부 언어에서 동일합니다. 함수가 인스턴스의 멤버가 아니라는 것을 의미합니다. 예를 들어'self'가 없기 때문에 정적 함수에서'self'를 사용할 수 없습니다. 정적 함수/속성을 클래스 이름으로 된 전역 함수로 생각하십시오. 저는 CS 졸업생이 아니므로 제대로 설명 할 수 없습니다. 미안 해요! –