【问题标题】:access variable of another class另一个类的访问变量
【发布时间】:2011-07-20 14:06:29
【问题描述】:

如何访问其他类的变量?我就是这样实现的。

@interface Class1 :NSObject {

NSString *数据; } @property (nonatomic, 保留) NSString *Data;

@implementation Class1
@synthesize Data;
someMethod{
self.Data = @"something";
}

在 Class2 中:

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

我在 Class2 中将 c.Data 设为 null。我在这里做错了吗?

-----------myClass1--------------

@interface APIManager : NSObject { NSString *数据; }

@property (nonatomic, 保留) NSString *Data;

-(void)getData;

@结束

@implementation APIManager

@synthesize 数据;

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

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

@interface 搜索:NSObject {

}

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

@结束

@implementation 搜索

-(void)searchForItems:(NSString *)query { APIManager *apiManager=[[APIManager alloc]init]; [apiManager 获取数据]; NSLog(@"%@",[apiManager 数据]); }

【问题讨论】:

    标签: objective-c variables properties getter-setter


    【解决方案1】:

    您可能应该使用self.Data = @"something" 而不是self.Data = "something"

    【讨论】:

    • 对不起,我没有写完整的代码。它只是一个摘录。 self.Data=@"Something" 是正确的,并且在接口中声明了“Data”。
    • 您仍然缺少几部分(这两种方法都应标记为此类并包含在界面中),但除此之外,您的代码没有明显的问题。您可能想发布一个更完整的示例;)
    • 我已经添加了我的代码。你能告诉我哪里出错了。
    • 不幸的是,我仍然不明白为什么它应该为空。 NSLog 打印什么?
    • 问题已解决。我正在做一种多线程。无论如何,谢谢托马斯
    【解决方案2】:

    在 Objective-C 中,您必须使用 @"something" 而不是 "something"。你也没有错过变量声明吗?在您的 @interface 中,您应该执行类似 NSString *Data 的操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多