다른 객체를 통해 객체의 변수에 액세스하려고하는 Objective-C에서 상황이 발생했습니다. 클래스는 (간체) :델리게이트를 통한 변수 액세스
아
@interface A : NSObject {
NSMutableArray *someStuff;
}
@property (nonatomic, retain) NSMutableArray *someStuff;
@end
오전
@implementation A
@synthesize someStuff;
// blah, blah, blah
을
그럼, 아이폰 응용 프로그램을하고 있어요 때문에,이 오브젝트 유형의 변수를 포함하는 응용 프로그램의 대표가 :
AppDelegate.h
@interface AppDelegate : NSObject <UIApplicationDelegate> {
A *aPtr;
}
@property (nonatomic, retain) A *aPtr;
@end
AppDelegate.m 다른 클래스에서 다음
@implementation AppDelegate
@synthesize aPtr;
// blah, blah, blah
(이 뷰 컨트롤러), 나는이 방식으로 액세스 'someStuff'에 노력하고있어 :
AViewController.m
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSMutableArray *someArray = appDelegate.aPtr.someStuff;
그래서 문제는 이것이 멋지게 폭발한다는 것입니다. 나는 이것이 왜 작동하지 않는지를 이해하기에는 너무 많은 Java 중독자라고 생각합니다. 누구든지 날 풀 수 있을까?
많은 감사,
크레이그
잘못되었습니다. 캐스팅이 불필요합니다. 위의 코드가 중단되어서는 안됩니다. (깨졌을뿐만 아니라 그냥 체크 된 것입니다.) –
감사합니다. 시도해 보겠습니다. – Craig
좋아, 나는 그것을 시도했다. 컴파일러는 someStuff가 AppDelegate의 객체가 아니라는 것에 불평하고 있습니다 (물론 아닙니다). 컴파일러 오류는 일반적으로 someStuff가 A.의 객체가 아니라는 점입니다. – Craig