어디서나 모든 viewcontroller 클래스에서 호출 할 수있는 메서드를 정의하려면 어떻게해야합니까?iOS : 공용 메소드를 정의하는 방법?
저는 json 파일을 가져 오는 메소드가 있습니다. 애플 리케이션에 여러 개의 json 호출이 있기 때문에 재사용이 가능합니다.
도와 주시겠습니까?
어디서나 모든 viewcontroller 클래스에서 호출 할 수있는 메서드를 정의하려면 어떻게해야합니까?iOS : 공용 메소드를 정의하는 방법?
저는 json 파일을 가져 오는 메소드가 있습니다. 애플 리케이션에 여러 개의 json 호출이 있기 때문에 재사용이 가능합니다.
도와 주시겠습니까?
당신은 카테고리를 통해 추가 할 수 있습니다
@interface UIViewController(JSON)
-(void) bringJSON;
-(void) fetchData:(NSData*) data;
@ end
을 그 다음에. 파일 :
@implementation UIViewController(JSON)
-(void) bringJSON {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[NSData dataWithContentsOfURL:yourURL];
[self performSelectorOnMainThread:@selector(fetchData:)
withObject:data waitUntilDone:YES];
});
}
-(void) fetchData:(NSData*) data {
//parse - update etc.
}
@end
여기서 y ou는 NSArray를 반환 할 것이고, 거기에 모든 메서드를 넣고 모든 UIViewController를 확장 할 수 있습니다. bringJSON 메서드는 모든 UIViewController와 그 하위 클래스에서 사용할 수 있습니다.
"+"기호로 정의 된 정적 메서드에 대해 생각하고 있다고 생각합니다. 당신이 다음 인스턴스화 할 필요가 개체에 액세스하는 기능을해야하는 경우
[YourClassName yourFunctionName:5];
당신이 싱글을 수행 할 것입니다 :
+ (String) yourFunctionName:(NSInteger)someValue .....
그럼 먼저 클래스 이름으로 어디서나 부를 수 무늬.
첫 번째 답변은 다른 개체를 포함하는 파일에서 호출 할 수있는 메서드를 사용하여 (본질적으로) 다른 개체를 만드는 방법이므로 첫 번째 답변을 작성했습니다.
objective-c도 단순히 C 일 뿐이라는 것을 기억하십시오. 호출 할 수있는 ANSI-C 루틴을 포함하는 .c 파일을 포함시킬 수 있습니다.
새로운 .H하는 .m 파일 쌍을 생성
편집하고 .H 파일 :
나는 클래스 메소드에 관한 나의 문제는 인스턴스 변수를 사용할 수 없기 때문에 나의 리턴은 항상 오류를 얻는다는 것이다. 클래스 변수를 사용하는 방법이 있습니까? 싱글 톤에 대해 읽은 것 같습니다. 싱글 톤은 프로토콜과 다릅니다. 나는 frontend에서 camed했고, 약 한 달 전부터 xcode에있다. 그래서 더 복잡한 일을하기가 조금 어려워졌습니다. oyur 도움 얘들 아! – 88fsantos
당신은 항상 C++ 객체도 구현할 수 있습니다. 이렇게하면 보호 된/개인 변수에 함수 액세스 만 제공 할 수 있습니다. XCode는 C++ 객체를 Objective-C 코드로 컴파일 할 수 있습니다. 내가 몇 가지 링크를 찾으려고하지만, 여기에 StackOverflow에 제목 (샘플 코드없이)에 대한 게시물입니다. http : // stackoverflow.co.kr/questions/406753/how-well-is-objective-c 지원 – trumpetlicks
tks man! 나는 그것을 읽을 것이다 – 88fsantos
메서드의 반환 형식 앞에 + 부호를 사용하십시오. 예를 들어
:
+ (void) Name: (NSString *) str{
}
싱글 http://en.wikipedia.org/wiki/Singleton_pattern –
rooster117 맞습니다. 당신은 정적 방법을 언급하고 있습니다. 모든 메소드는 Objective-C에 공개되어 있습니다. 그러나 클래스 확장에서 메서드를 선언하여 메서드를 숨기거나 컴파일러 경고를 발생시킬 수 있습니다. 아직도 그들은 사적인 것이 아닙니다. –