创建后自定义对象为空

时间:2013-11-22 05:31:29

标签: ios objective-c nsobject

我有一个自定义对象:Vendor扩展NSObject。我是这样开始的:

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:

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

1 个答案:

答案 0 :(得分:5)

问题在于您的description财产。 NSObject类定义了description方法。将%@格式说明符与对象一起使用时,将调用此方法。

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

将您的description媒体资源重命名为其他内容。