1

我正在尝试将我的自定义对象插入BalanceDataNSMutableArray但出现错误:

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;

我怎样才能以正确的方式做到这一点?

4

2 回答 2

2

您的 BalanceData 类没有实现 balance 方法。以这种方式调用:

[BalanceData balance]

你正在调用一个类方法:

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

将此类方法添加到 BalanceData 类中,它将起作用。您还应该在集合类中覆盖isEqual:hash使用您的对象。

于 2013-03-07T10:38:04.223 回答
1

根据您提供的代码和错误消息,这似乎与 NSMutableArray 没有任何关系...

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

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

单独试试这个:

[BalanceData balance];

我敢打赌,运行时不会更好,这表明您的问题出在此处,而不是与数组交互有关。

于 2013-03-07T10:36:06.780 回答