gpt4 book ai didi

objective-c - iOS 对象被识别为错误的类

转载 作者:行者123 更新时间:2023-11-29 11:08:46 25 4
gpt4 key购买 nike

长话短说,我在处理的一些代码中有一些奇怪的错误,结果证明它来自一个被识别为错误类的对象。

这是我的代码,在任何东西接触对象之前我都添加了 NSLog 语句……我不明白为什么它显示为错误的类。

照片.h

@interface Photo : NSObject
{
}

@property (nonatomic, retain) UIImage *image;
@property (nonatomic, retain) IBOutlet NSString *descr;

@end

照片.m

@implementation Photo

@synthesize image;
@synthesize descr;

@end

CameraViewController.h

#include "Photo.h"

@interface CameraViewController : UIViewController <UIImagePickerControllerDelegate>
{
IBOutlet UIImageView *imageView;
}

@property (nonatomic, retain) Photo *photo;

-(void)takePhoto;
-(void)resetImage;

@end

最后……CameraViewController.m

#import "Photo.h"
....

@implementation CameraViewController

@synthesize photo;

- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@", NSStringFromClass([_photo class]));
// Do any additional setup after loading the view.
}

打印出来:

UIImageView

我希望它能打印出来

Photo

或者至少

NSObject

我错过了什么吗???

最佳答案

向对象发送 class 消息会检索该对象的动态 类型。必须在查询对象的 class 之前分配该对象。换句话说,将属性声明为 Photo* 不足以使其 class 返回 Photo:您还必须为其分配 的实例code>Photo 或其子类之一。在后一种情况下,发送class消息的结果会有所不同(即返回子类的Class)。

关于objective-c - iOS 对象被识别为错误的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12532968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com