gpt4 book ai didi

ios - 创建后自定义对象为空

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:29:13 29 4
gpt4 key购买 nike

我有一个自定义对象:扩展NSObjectVendor。我是这样启动它的:

NSDictionary *vendorObj = [vendors objectAtIndex:i];
Vendor *vendor = [[Vendor alloc] initWithVendorInfo:vendorObj];
NSLog(@"VendorObj: %@", vendorObj);
NSLog(@"Vendor: %@", vendor);

类是这样的:

@interface Vendor : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *description;

- (id)initWithVendorInfo:(NSDictionary *)vendorDetails;

@end

@implementation Vendor

- (id)initWithVendorInfo:(NSDictionary *)vendorDetails
{
self = [super init];
if(self)
{
_name = [vendorDetails[@"company_name"] copy];
_description = [vendorDetails[@"description"] copy];
}
return self;
}

如果我使用 NSLog vendorObj,所有的细节都在那里。一旦我启动了 Vendor 对象并对其进行 NSLog,日志显示:

2013-11-21 22:22:44.769 [48202:a07] Vendor:

我似乎无法弄清楚为什么我的对象什么都不是,没有内存地址,甚至不是空值。我在这里做错了什么?

最佳答案

问题出在您的 description 属性上。 NSObject 类定义了一个description 方法。当您对对象使用 %@ 格式说明符时,将调用此方法。

您的description 属性覆盖了该方法。

将您的 description 属性重命名为其他名称。

关于ios - 创建后自定义对象为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137682/

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