gpt4 book ai didi

ios - 如何打印NSSet的内容?

转载 作者:可可西里 更新时间:2023-11-01 04:37:34 28 4
gpt4 key购买 nike

我查询并获取一个 NSSet,其中包含来自网络的客户地址。因为我是 objective c 开发的新手,所以我不知道如何从那个集合中获取国家/地区、邮政编码等。所以我关注了 Objective-C How to print NSSet on one line (no trailing comma / space)但我的输出是对象“0x7f99997b7a50”的形式。如何打印集合中的所有字符串?提前致谢。

我试过这样

NSArray *ar = [customer.addresses allObjects]; 
for (int i = 0; i<ar.count; i++)
{
NSLog(@"arr %@",ar[i]);
}

但是输出是arr:

 <BUYAddress: 0x7fd451f6e050>

最佳答案

如果您有自定义对象,您可能需要覆盖description

不覆盖:

-(void) testCustomObjects 
{
CustomObject *co1 = [[CustomObject alloc] init];
co1.name = @"James Webster";
co1.jobTitle = @"Code Monkey";

CustomObject *co2 = [[CustomObject alloc] init];
co2.name = @"Holly T Canine";
co2.jobTitle = @"Pet Dog";

NSSet *set = [NSSet setWithObjects:co1, co2, nil];

NSLog(@"%@", [set allObjects]);
}

产生:

2016-12-02 11:45:55.342 Playground[95359:4188387] (
"<CustomObject: 0x600000037a20>",
"<CustomObject: 0x60000003ae20>"
)

但是,如果我重写 CustomObject 类中的 description 方法:

-(NSString*) description
{
return [NSString stringWithFormat:@"%@ (%@)", self.name, self.jobTitle];
}

我得到以下信息:

(
"Holly T Canine (Pet Dog)",
"James Webster (Code Monkey)"
)

如果出于某种原因,您无法添加描述方法,您只需要访问对象的相关部分;类似于以下内容:

NSArray *ar = [customer.addresses allObjects]; 
for (int i = 0; i<ar.count; i++)
{
NSLog(@"arr %@ (%@)",ar[i].name, ar[i].address);
}

我已经略微查看了您正在使用的库。尝试以下操作:

for (BUYAddress *address in customer.addresses)
{
NSLog(@"Address: %@, %@, %@", address.address1, address.address2, address.city);
}

关于ios - 如何打印NSSet的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931247/

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