我有一个我称之为计算日出,中午和日落的方法。我把这个方法作为Julian传递给了日期。
该方法需要返回三个数字或字符串:Sunrise,Noon和Sunset。
我试着按如下方式调用它:
ClassSolarCalculations *LINK = [[ClassSolarCalculations alloc] init];
NSString dateSunrise= [[NSString alloc] initWithFormat:@"%f", [LINK CalculateSunrise: Julian]];
方法的内容如下:
(NSDictionary *) CalculateSunrise: (double) Julian;
NSDictionary *returnTimes = [NSDictionary initWithObjectsAndKeys: SunriseText, @"Sunrise", NoonText, "@Noon", SunsetText, @"Sunset", nil];
return returnTimes;
我可以使用这种方法来返回单个值,但是想要一次性返回所有三个值,而不是通过调用例程的变体三次来捏造解决方案......
答案 0 :(得分:4)
这里应该改变很多事情:
CalculateSunrise:
方法,因为它会返回更多值。也许calculateSunTimes:
。NSDictionary
,因此您需要对返回进行处理。试试这个:
ClassSolarCalculations *link = [[ClassSolarCalculations alloc] init];
NSDictionary *times = [link calculateSunTimes:julian];
NSString *sunrise = times[@"sunrise"];
NSString *noon = times[@"noon"];
NSString *sunset = times[@"sunset"];
您的方法类似于:
- (NSDictionary *)calculateSunTimes:(double)julian {
// calculate the three values:
return @{ @"sunrise" : sunriseText, @"sunset" : sunsetText, @"noon" : noonText };
}
请注意使用现代Objective-C语法。