gpt4 book ai didi

ios - 不兼容的指针类型将 User* 发送到 UserProfile* 类型的参数

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

我正在使用最新的 SDK 开发 iOS 5.0+ 应用程序。

我有这两种方法。

UserPreferences 类上。

+ (User*)getUserFromUserPreferences;

ProfileViewController 类上:

- (void)showUserData:(UserProfile*)userToShow;

还有一个继承自 UserUserProfile:

@interface UserProfile : User

@property (nonatomic, strong) NSNumber* isBlockedByMe;
@property (nonatomic, strong) NSNumber* isMyFriend;

@end

最后,我有这段代码,它给我一个警告:

[self showUserData:[User getUserFromUserPreferences]];

随着消息:不兼容的指针类型将 User* 发送到 UserProfile* 类型的参数

这样做是否正确?

[self showUserData:(UserProfile*)[User getUserFromUserPreferences]];

或者,我可能会遇到内存泄漏或任何其他问题。

最佳答案

不,那是不正确的。它可能会使警告静音,但这样做并不理想。通常,您可以将派生类对象作为参数传递给接受基类实例的函数。你在做什么是相反的。

为什么这是错误的:由于您将基类对象强制类型转换为派生类,现在如果您尝试访问此对象中的派生类内存空间,它将在运行时崩溃。该对象不包含派生类部分。

希望对您有所帮助!

关于ios - 不兼容的指针类型将 User* 发送到 UserProfile* 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972990/

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