다른 클래스의 변수에 액세스하는 방법은 무엇입니까? 이것이 내가 구현 한 방법이다.다른 클래스의 액세스 변수
@interface Class1 :NSObject {
NSString * 데이터; } @property (비 원자력, 보유) NSString * 데이터;
@implementation Class1
@synthesize Data;
someMethod{
self.Data = @"something";
}
및 Class2의에서
:@implementation Class2
someMethodOfClass2{
Class1 *c=[[Class1 alloc]init];
[c someMethod];
NSString *str=c.Data;
}
나는 Class2의에서 널 (null)로 c.Data를 얻을. 내가 여기서 뭐 잘못하고 있니?
----------- myClass1 --------------
@interface의 APIManager : NSObject의 { 는 NSString * 데이터; }
@property (nonatomic, retain) NSString * 데이터;
- (void) getData;
@end
@implementation의 APIManager
@synthesize 데이터;
- (void) getData { self.Data = @ "response"; }
-------- MyClass2의 -------------
@interface 검색 : NSObject의 {
}
- (무효) searchForItems : (NSString *) 쿼리;
@end
@implementation 검색
- (무효) searchForItems (는 NSString *) 쿼리 { APIManager apiManager * = [APIManager ALLOC] INIT]; [apiManager getData]; NSLog (@ "% @", [apiManager 데이터]); }
죄송합니다. 전체 코드를 작성하지 않았습니다. 그것의 발췌 부분. self.Data = @ "Somethin"이 적절하고 "Data"가 인터페이스에 선언되어 있습니다. –
당신은 여전히 두 조각을 놓치고 있습니다. (두 가지 방법 모두 인터페이스로 표시하고 인터페이스에 포함시켜야합니다.) 그렇지만 별도의 코드에는 문제가 없습니다. 좀 더 완벽한 예제를 게시하고 싶을 수도 있습니다.) –
내 코드를 추가했습니다. 내가 어디로 잘못 가고 있는지 말해 줄 수 있니? –