将自定义对象插入NSMutableArray

时间:2013-03-07 10:27:13

标签: ios nsmutablearray

我正在尝试将自定义对象BalanceData插入NSMutableArray并收到错误消息:

No known class method for selector 'balnce'

我的代码:

- (void)insertNewObject:(id)sender
{
    if (!_balances) {
        _balances = [[NSMutableArray alloc] init];
    }
    [_balances insertObject:[BalanceData balance] atIndex:0]; // error occures here
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

MasterViewController.m顶部:

#import "MasterViewController.h"
#import "DetailViewController.h"
#import "BalanceData.h"

@interface MasterViewController () {
    NSMutableArray *_balances;
}
@end

@implementation MasterViewController

@synthesize balances = _balances;

我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

根据您提供的代码和错误消息,这似乎与NSMutableArray无关......

运行时抱怨类BalanceData没有响应某条消息。

所以:你说错了方法吗?或者您打算调用实例方法,而是将其作为Class方法调用?或者您是否故意调用Class方法,但是没有将它放在您的.h文件中以便能够看到其他外部代码?

单独试一试:

[BalanceData balance];

我敢打赌,运行时不再那样好了,证明你的问题在这里,而不是数组交互。

答案 1 :(得分:1)

您的类BalanceData不实现balance方法。以这种方式打电话:

[BalanceData balance]

你正在调用一个类方法:

@implementation BalanceData
+ (id)balance
{ //implementation}

在BalanceData中写下这个很好