我想创建一个返回多个NSString的方法。我正在考虑这种方法,但我没有找到它的objc风格,而是C程序员风格 - 它使用指针(NSString *),因此(NSString **):
- (LONG) readOwnerInformationToNationalNumber:(NSString**) nationalNumber
toName:(NSString**) name
toFirstName:(NSString**) firstName
toNationality:(NSString**) nationality
toPlaceOfBirth:(NSString**) placeOfBirth
toDateOfBirth:(NSString**) dateOfBirth
toGender:(NSString**) gender
toStreetAndNumber:(NSString**) streetAndNumber
toZip:(NSString**) zip
toMunicipality:(NSString**) municipality
toChipNumber:(NSString**) chipNumber
toCardValidityDateBegin:(NSString**) cardValidityDateBegin
toCardValidityDateEnd:(NSString**) cardValidityDateEnd
toCardDeliveryMunicipality:(NSString**) cardDeliveryMunicipality
在方法体中,我返回这样的字符串:
*nationalNumber = [NSString stringWithString:@"11223344"];
实际上,这是我第一次返回多个NSString,并且总是将我的NSString作为返回参数返回。
这是一种丑陋,不健全或可行的做法吗?
此致 Apple 92
答案 0 :(得分:4)
你所做的当然是可能的,但我发现它并不优雅。您需要返回的信息似乎属于一个,那么为什么不创建包含所有这些字段的自定义类并让您的方法返回该类的实例?
答案 1 :(得分:1)
如果您不想要自定义类,可能“Cocoa方式”将返回NSDictionary:
- (NSDictionary*) readOwnerInformationToNationalNumber
{
// do stuff
NSDictionary* returnedDictionary
= dictionaryWithObjectsAndKeys:
nationalNumber, @"nationalNumber",
name, @"name",
// etc ...
cardDeliveryMunicipality, @"cardDeliveryMunicipality",
nil];
return returnedDictionary;
}
这在许多地方用于Coca,例如NSURL -resourceValuesForKeys:error