2013-04-04 87 views
0

有这一个许多其他类似的问题,但有一个得不到答案,他们改变了每一个项目。 我有这个错误 '太多的方法调用参数,预期1,有2?' 但在以前的阵列,我用这个错误没有发生?它可能是代码的问题,但我不确定?我已经通过寻找可能影响它的其他错误,但没有运气。 下面是我的编码,太多参数的方法调用,预计1,有2个?(Xcode中)

#import "MenuViewController.h" 
#import "ECSlidingViewController.h" 

@interface MenuViewController() 

@property (strong, nonatomic) NSArray *menu; 
@property (strong, nonatomic) NSArray *section1; 
@property (strong, nonatomic) NSArray *section2; 
@property (strong, nonatomic) NSArray *section3; 


@end 

@implementation MenuViewController 

@synthesize menu, section1, section2, section3; 


- (id)initWithStyle:(UITableViewStyle)style 
{ 
    self = [super initWithStyle:style]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Uncomment the following line to preserve selection between presentations. 
    // self.clearsSelectionOnViewWillAppear = NO; 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem; 

    self.section1 = [NSArray arrayWithObjects:@"News Feed", @"Buy Shares", @"Sell Shares", nil]; 

    self.section2 = [NSArray arrayWithObjects:@"Finances", @"Current Holdings", @"Trading History", nil]; 

    ***self.section3 = [NSArray arrayWithObject:@"Leaderboard", nil];*** 

    self.menu = [NSArray arrayWithObjects:self.section1, self.section2, self.section3, nil]; 


    [self.slidingViewController setAnchorRightRevealAmount:200.0f]; 
    self.slidingViewController.underLeftWidthLayout = ECFullWidth; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
#warning Potentially incomplete method implementation. 
    // Return the number of sections. 
    return [self.menu count]; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
#warning Incomplete method implementation. 
    // Return the number of rows in the section. 

    if (section == 0) { 

     return [self.section1 count]; 

    } else if (section == 1) { 

     return [self.section2 count]; 

    } else if (section == 2) { 

     return [self.section3 count]; 

    } 


} 


-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 


    if (section == 0) { 

     return @"Stock Market"; 

    } else if (section == 1) { 

     return @"Portfolio"; 

    } else if (section == 2) { 

     return @"Options"; 

    } 


} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *cellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; 
    } 

    if (indexPath.section == 0) { 

     cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.section1 objectAtIndex:indexPath.row]]; 

    } else if (indexPath.section == 1) { 


     cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.section2 objectAtIndex:indexPath.row]]; 
    } else if (indexPath.section == 2) { 


     cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.section3 objectAtIndex:indexPath.row]]; 
    } 





    return cell; 
} 

/* 
// Override to support conditional editing of the table view. 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the specified item to be editable. 
    return YES; 
} 
*/ 

/* 
// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // Delete the row from the data source 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } 
    else if (editingStyle == UITableViewCellEditingStyleInsert) { 
     // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
    } 
} 
*/ 

/* 
// Override to support rearranging the table view. 
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath 
{ 
} 
*/ 

/* 
// Override to support conditional rearranging of the table view. 
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the item to be re-orderable. 
    return YES; 
} 
*/ 

#pragma mark - Table view delegate 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Navigation logic may go here. Create and push another view controller. 
    /* 
    <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; 
    // ... 
    // Pass the selected object to the new view controller. 
    [self.navigationController pushViewController:detailViewController animated:YES]; 

    */ 

    UIViewController *newTopViewController; 


    if (indexPath.section == 0) { 

     NSString *identifier = [NSString stringWithFormat:@"%@", [self.section1 objectAtIndex:indexPath.row]]; 

     newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

    } else if (indexPath.section == 1) { 

     NSString *identifier = [NSString stringWithFormat:@"%@", [self.section2 objectAtIndex:indexPath.row]]; 

     newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

    } else if (indexPath.section == 2) { 

     NSString *identifier = [NSString stringWithFormat:@"%@", [self.section3 objectAtIndex:indexPath.row]]; 

     newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

    } 




    [self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{ 
     CGRect frame = self.slidingViewController.topViewController.view.frame; 
     self.slidingViewController.topViewController = newTopViewController; 
     self.slidingViewController.topViewController.view.frame = frame; 
     [self.slidingViewController resetTopView]; 
    }]; 


} 

@end 

任何帮助将非常感激。谢谢。出现错误的位置我已经把“***”

Screenshot

+0

这将是您更容易得到答案,如果你想至少有标记你的问题您正在使用的语言名称。 – Voitcus 2013-04-04 13:48:53

回答

4

这本来是很好,如果你曾表示该行是造成问题,但我想我找到它无论如何:

[NSArray arrayWithObject:@"Leaderboard", nil]; 

arrayWithObject只需要一个对象,而不是逗号分隔的对象数组。使用以下代替:

[NSArray arrayWithObject: @"Leaderboard"]; 

或者,要与周围的代码更一致,使用

[NSArray arrayWithObjects: @"Leaderboard", nil]; 
+0

对不起,我正在指出,我没有意识到我忘了。如果我包含多个字符串,您的建议是否仍然有效? – 2013-04-04 13:51:21

+1

@JasonTaylor我假设你想使用'arrayWithObjects:'(注意's'),因为这就是它上下使用的行。 – Xymostech 2013-04-04 13:52:56

+0

对于多个字符串,您可以使用arrayWithObjects(注意s),就像您在3个类似的行上做的一样。 [这里](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html)是解释两种方法之间差异的文档。 – 2013-04-04 13:53:48

相关问题