1

他のクラスの変数にアクセスする方法は?これが私がそれを実装した方法です。

@interface Class1 :NSObject {
NSString *Data;
}
    @property (nonatomic, retain) NSString *Data;
    
    @implementation Class1
    @synthesize Data;
    someMethod{
    self.Data = @"something";
    }
    
and in Class2 :

    @implementation Class2
    someMethodOfClass2{
    Class1 *c=[[Class1 alloc]init];
    [c someMethod];
    NSString *str=c.Data;
}

Class2でc.Dataをnullとして取得します。私はここで何か間違ったことをしていますか?

----------- myClass 1 ---------------

@interface APIManager : NSObject {
    NSString *Data;
}

@property (nonatomic, retain) NSString *Data;

-(void)getData;

@end

@implementation APIManager

@synthesize Data;

-(void)getData{
self.Data=@"response";
}

-------- myClass2-------------

@interface Search : NSObject {
    
}

-(void)searchForItems:(NSString *)query;

@end

@implementation Search

-(void)searchForItems:(NSString *)query {
APIManager *apiManager=[[APIManager alloc]init];
[apiManager getData];
NSLog(@"%@",[apiManager Data]);
}
4

2 に答える 2

1

おそらくself.Data = @"something"代わりに使用する必要がありますself.Data = "something"

于 2011-03-22T15:18:38.077 に答える
0

Objective-C@"something"では、の代わりにを使用する必要があり"something"ます。また、変数宣言を見逃していませんか?あなたの中であなたはの@interfaceようなことをするべきですNSString *Data

于 2011-03-22T15:18:47.487 に答える