可能重复:
How to write a method/message with multiple parameters?
我在这里真的很困惑......我看过SO和Google,在那里我找到了一个用两个参数调用方法的例子。所以我修改了它供我使用,不幸的是我无法让它工作。这是我更新的代码:
- definition of method
- (NSArray *) fetchEventsBetweenDates: (NSDate *) sDate: andDate: (NSDate *) eDate;
- definitions and creation of sD and eD
// convert start dates to NSDate
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
NSDate* sD = [df dateFromString:@"10/03/2012"];
NSLog(@"startDate: %@", sD);
// convert end dates to NSDate
NSDate* eD = [df dateFromString:@"10/05/2012"];
NSLog(@"endDate: %@", eD);
- call to method
[self.eventsList addObjectsFromArray:[self fetchEventsBetweenDates: sD andDate: eD]];
- method
- (NSArray *) fetchEventsBetweenDates: (NSDate *) sDate: andDate: (NSDate *) eDate {
我已经尝试过我认为合理的每一种排列,但它仍然无法构建。我正在接受一个“预期的':'调用方法。
我做错了什么?
答案 0 :(得分:11)
请阅读Apple的The Objective-C Programming Language。特别是Message Syntax部分。
消息声明语法如下:
- (return type)myMethodParam1:(param1 type)p1 param2:(param2 type)p2;
示例:
- (NSArray *)fetchEventsBetweenDate:(NSDate *)startDate andDate:(NSDate *)endDate;
实现是相同的,您只需将分号;
替换为大括号{ implementation }
中的实现。
调用方法时,将参数声明替换为变量:
// Assuming aDate and otherDate exist.
[self fetchEventsBetweenDate:aDate andDate:otherDate];
答案 1 :(得分:4)
从基本的Objective-C书开始。非常清楚你还不懂语法或语言(没什么大不了的 - 我们都从那里开始)。
如果您确实将方法定义为:
- (NSArray *) fetchEventsForADay: (NSDate *) sDate: (NSDate *) eDate;
您可以使用[someObj fetEventsForADay: date1 : date2];
来调用它。 Objective-C的interleave-arguments-with-method-name模式的重点是使API自我记录。因此,你可能想要:
这将被称为[someObj fetchEventsBetweenStartDate: date1 andEndDate: date2];
。更清楚。