基于用户输入的Setter方法

时间:2011-10-16 03:11:50

标签: objective-c scanf getter-setter

Objective-C的新手,并试图完成一个类的最终项目。我已经创建了一个基于用户输入设置日期的方法,并且遇到了setter的一些麻烦。用户首先必须选择添加新条目的选项,然后程序应该要求用户输入日期并根据该输入设置日期。

#import <Foundation/Foundation.h>


@interface Planner : NSObject {

NSNumber *date;    
}

-(void) setDate:(NSNumber *)newDate;
-(NSNumber *) date;

@end

@implementation Planner

-(void) setDate:(NSNumber *) newDate
{
date = [[NSNumber alloc] initWithInt: newDate];
NSLog(@"Enter date");
scanf("%i", newDate);
}

-(NSNumber *) date;
{
return date;
}

@end


int main (int argc, const char * argv[])
{

int userAction;

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Planner *newPlanner = [[Planner alloc] init];



NSLog(@"Please enter 1 to add a new entry and 2 to update an existing entry");
scanf("%i", userAction);

if (userAction == 1) {
    [newPlanner setDate];
}

else
    NSLog(@"will update");




[pool drain];
return 0;
}

1 个答案:

答案 0 :(得分:0)

-(void) setDate:(NSNumber *) newDate;

setDate应该接收NSNumber*类型的参数。但是你在没有传递任何参数的情况下调用该方法。

 [newPlanner setDate]; //  [newPlanner setDate: shouldPassNSNumberArgument];

喜欢 -

[newPlanner setDate:[NSNumber numberWithInt:10] ];