简体   繁体   English

从目标c中的另一个类访问类

[英]accessing classes from another class in objective c

I have two classes. 我有两节课。

GameData.h GameData.h

#import "TeamData.h"

@property (assign, nonatomic) GameData* teamA;

TeamData.h TeamData.h

@interface TeamData : NSObject

@property (nonatomic, copy) NSString* teamName;     
-(void) printTeamData;

A number of questions : 一些问题:

  1. Inside GameData.m I have this code : 在GameData.m内部,我有以下代码:

    TeamData* team = self.teamA; TeamData *团队= self.teamA; [team printTeamData]; [团队printTeamData];

The first line shows this warning : 第一行显示此警告:

Incompatible pointer types from TeamData* with an expression of type TeamData*
  1. In another class, I am including GameData.h and I want to set the teamA name. 在另一个类中,我包括GameData.h,我想设置teamA名称。 How do I access that? 我该如何访问? So I want to fetch the teamA property from the GameData class and set its name property. 所以我想从GameData类中获取teamA属性并设置其name属性。

In GameData.h, your property points to its own class, not to TeamData 在GameData.h中,您的属性指向其自己的类,而不是TeamData

@property (assign, nonatomic) GameData* teamA;

assign is meant for primitive types such as BOOL or NSInteger. assign适用于基本类型,例如BOOL或NSInteger。

The parent class should hold a strong reference to a child object. 父类应strong引用子对象。

So your property would be better off as 所以你的财产会更好

@property (strong, nonatomic) TeamData* teamA;

As for setting the teamA property, you would call setTeamA: on your GameData instance: 至于设置teamA属性,您可以在GameData实例上调用setTeamA: ::

[myGameData setTeamA:...];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM