Objective C의 @interface가 무엇인지 알고 싶습니다. 프로그래머가 변수, 클래스 이름 또는 메서드 이름을 선언하려는 곳입니까? Java의 인터페이스와 같은지 확실하지 않습니다. 객관적인 C의 @ 프로토콜에 대해서도 마찬가지입니다. Java의 인터페이스처럼 보입니다. 누구든지 저에게 자세한 설명을 줄 수 있습니까? 정말 감사합니다.
답변
인터페이스는 클래스의 속성과 작업을 정의하는 곳입니다. 구현도 설정해야합니다.
프로토콜은 자바 용 인터페이스와 같습니다.
예 :
@protocol Printing
-(void) print;
@end
구현 가능
(인터페이스에서 혼란스럽게) 선언하여
@interface Fraction: NSObject <Printing, NSCopying> {
//etc..
자바 개발자에게 혼란스러운 점은 중괄호 {}
가 인터페이스의 끝이 아니라는 것입니다.
@interface Forwarder : Object
{
id recipient;
} //This is not the end of the interface - just the operations
- (id) recipient;
- (id) setRecipient:(id) _recipient;
//these are attributes.
@end
//This is the end of the interface
답변
이걸 보시면 좋겠네요 + 이해하는데 큰 도움이되었다고 생각 했어요
기사에서 :
@상호 작용
C ++
Foo.h
#ifndef __FOO_H__
#define __FOO_H__
class Foo
{
...
};
Foo.cpp
#include "Foo.h"
...
목표 -C
Foo.h
@interface Foo : NSObject
{
...
}
@end
Foo.m
#import "Foo.h"
@implementation Foo
...
@end
@실험 계획안
C ++
struct MyInterface
{
void foo() = 0;
}
class A : MyInterface
{
public:
void override foo() { ... }
}
목표 -C
@protocol MyInterface
-(void) foo;
@end
@interface Foo : NSObject <MyInterface>
{
-(void) foo {...}
...
}
@end
답변
@interface
목표 – C에서 자바 인터페이스와는 아무 상관이있다. 단순히 클래스의 공용 인터페이스 인 공용 API를 선언합니다. (그리고 이미 관찰 한 바와 같이 멤버 변수.) Java 스타일 인터페이스는 Objective-C에서 프로토콜이라고하며 @protocol
지시문을 사용하여 선언됩니다 . Apple의 The Objective-C Programming Language 를 읽어야합니다. 이 책은 짧고 쉽게 접근 할 수있는 좋은 책입니다.