我正在尝试将自定义对象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;
我该如何正确地做到这一点?
答案 0 :(得分:1)
根据您提供的代码和错误消息,这似乎与NSMutableArray无关......
运行时抱怨类BalanceData
没有响应某条消息。
所以:你说错了方法吗?或者您打算调用实例方法,而是将其作为Class方法调用?或者您是否故意调用Class方法,但是没有将它放在您的.h文件中以便能够看到其他外部代码?
单独试一试:
[BalanceData balance];
我敢打赌,运行时不再那样好了,证明你的问题在这里,而不是数组交互。
答案 1 :(得分:1)
您的类BalanceData不实现balance方法。以这种方式打电话:
[BalanceData balance]
你正在调用一个类方法:
@implementation BalanceData
+ (id)balance
{ //implementation}
在BalanceData中写下这个很好