Objective c 如何在目标C中从对象1投射到对象2

Objective c 如何在目标C中从对象1投射到对象2,objective-c,Objective C,如何将对象强制转换为Person以访问其属性,例如 ((Person)self.dataObject).firstName; 除了clang不接受这种语法之外: DataViewController.h - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.dataLabel.text = ((Person)self.dataObject).firstName; } #im

如何将对象强制转换为Person以访问其属性,例如

((Person)self.dataObject).firstName;
除了clang不接受这种语法之外:

DataViewController.h

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    self.dataLabel.text = ((Person)self.dataObject).firstName;
}
#import <UIKit/UIKit.h>

@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *dataLabel;
@property (strong, nonatomic) id dataObject;

@end
DataViewController.h

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    self.dataLabel.text = ((Person)self.dataObject).firstName;
}
#import <UIKit/UIKit.h>

@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *dataLabel;
@property (strong, nonatomic) id dataObject;

@end
#导入
@接口DataViewController:UIViewController
@属性(强,非原子)IBUILabel*dataLabel;
@属性(强,非原子)id数据对象;
@结束

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property NSString* firstName;
@property NSString* lastName;

@end
#导入
@接口人:NSObject
@属性NSString*firstName;
@属性NSString*lastName;
@结束

您不能将其强制转换为指向对象的指针。相反,您应该按如下方式进行铸造:

((Person *)self.dataObject).firstName;

您不能将其强制转换为指向对象的指针。相反,您应该按如下方式进行铸造:

((Person *)self.dataObject).firstName;

您不能将其强制转换为指向对象的指针。相反,您应该按如下方式进行铸造:

((Person *)self.dataObject).firstName;

您不能将其强制转换为指向对象的指针。相反,您应该按如下方式进行铸造:

((Person *)self.dataObject).firstName;

缺少星号不会使类型成为“基元”。实际上,指针本身就是基元类型,但不是基元类型的对象只能通过ObjC中的指针进行访问。缺少星号并不能使类型成为“基元”。实际上,指针本身就是基元类型,但不是基元类型的对象只能通过ObjC中的指针进行访问。缺少星号并不能使类型成为“基元”。实际上,指针本身就是基元类型,但不是基元类型的对象只能通过ObjC中的指针进行访问。缺少星号并不能使类型成为“基元”。事实上,指针本身就是基元类型,但不是基元类型的对象只能通过ObjC中的指针访问。