Objective c 从NSLog格式化我的输出
我有一个方法resultaat,它在一个可变字典上循环,这个字典将alfabet作为键,数组中的一个或多个person对象作为值。personobject有一个名称、多封电子邮件和多个电话号码 在person类中,我使用description将邮件和电话号码连接成逗号分隔的字符串并输出结果Objective c 从NSLog格式化我的输出,objective-c,Objective C,我有一个方法resultaat,它在一个可变字典上循环,这个字典将alfabet作为键,数组中的一个或多个person对象作为值。personobject有一个名称、多封电子邮件和多个电话号码 在person类中,我使用description将邮件和电话号码连接成逗号分隔的字符串并输出结果 -(void)resultaat{ for(id key in [addressbook allKeys]){ NSLog(@"\n%@ \n-\n %@ ", key,[a
-(void)resultaat{
for(id key in [addressbook allKeys]){
NSLog(@"\n%@ \n-\n %@ ", key,[addressbook objectForKey:key] );
}
}
如果我这样做的话,效果很好
-(NSString *) description {
NSString *joinedmails = [mails componentsJoinedByString:@","];
NSString *joinedtelnrs = [telnrs componentsJoinedByString:@","];
return [NSString stringWithFormat:@"\n Naam: %@ \n email: %@ \n telefoonnr: %@",naam,joinedmails, joinedtelnrs];
}
我明白了
但是当我在整个addressboek上循环时,person对象不会像上面那样返回
2012-02-27 17:39:59.355 Adresboek[5162:503]
Naam: Waldo Odlaw
email: waldo.odlaw@waldo.com,waldo.odlaw@gmail.com
telefoonnr: 123456789,987654321
}
如何格式化输出 你必须打字 在下面的代码中,您必须将PersonObject更改为PersonObject类的名称
2012-02-27 17:39:59.407 Adresboek[5162:503]
w
-
(
"\n Naam: Waldo Odlaw \n email: waldo.odlaw@waldo.com,waldo.odlaw@gmail.com \n telefoonnr: 123456789,987654321",
"\n Naam: Wuno Odlaw \n email: wuno.odlaw@wuno.com,wuno.odlaw@gmail.com \n telefoonnr: 2468101214,1412108642"
)
2012-02-27 17:39:59.408 Adresboek[5162:503]
j
-
(
)
NSArray类的-description方法的文档称,它将返回格式化为属性列表的数组描述。我怀疑它的实现是从PersonObject中获取-description,并将所有换行符转换为“/”字符,后跟“n”字符。这样,它在字符串中显示换行符,同时仍然保持有效的属性列表格式
为了得到您想要的,我认为您需要手动循环数组,以构建一个看起来符合您需要的字符串。如果您想使用%@格式说明符打印整个地址簿,那么您可能需要对NSArray进行子类化,并为存储在字典中的数组提供自己的-description方法。Hmm,我现在知道-description是一个类方法,而不是一个实例方法。您至少还有两个不太优雅的选项:创建一个NSString类别,其中NSStringFromPersonObject类似于NSStringFromCGRect。。。或者创建一个自定义的专用-NSString*打印输出方法。我将PersonObject加入到一个字符串中,这样就可以了。NSString*joinedpersons=[[addressbook objectForKey:key]组件JoinedByString:@\n];我无法获得用于for循环的-描述。
-(void)resultaat{
for(id key in [addressbook allKeys]){
NSLog(@"\n%@ \n-\n %@ ", key,[addressbook objectForKey:key] );
}
2012-02-27 17:39:59.407 Adresboek[5162:503]
w
-
(
"\n Naam: Waldo Odlaw \n email: waldo.odlaw@waldo.com,waldo.odlaw@gmail.com \n telefoonnr: 123456789,987654321",
"\n Naam: Wuno Odlaw \n email: wuno.odlaw@wuno.com,wuno.odlaw@gmail.com \n telefoonnr: 2468101214,1412108642"
)
2012-02-27 17:39:59.408 Adresboek[5162:503]
j
-
(
)
-(void)resultaat {
for(id key in [addressbook allKeys]){
NSLog(@"\n%@ \n-\n %@ ", key,(PersonObject *)[addressbook objectForKey:key] );
}
}