我正在为iOS 5开发一个iPhone应用程序,我陷入阵列问题。我有一个我称之为人员的自定义课程。人员由两个阵列组成。一个给男孩,一个给女孩。首先,我想使用另一个类中的方法填充Persons对象,我很确定它的工作原理应该如此。但是,当我要在代码中将数组从Persons对象拆分为单个数组时,它不起作用。感觉就像Persons对象,或者它的数组以某种方式被卡住了。请帮忙。这段代码给我一个错误,看起来像是:2012-07-24 09:29:03.073 PersonApp[4375:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary Boys]: unrecognized selector sent to instance 0x6ac0fe0'
Persons.h
#import <Foundation/Foundation.h>
@interface Persons : NSObject {
NSArray *Boys;
NSArray *Girls;
}
@property (nonatomic, copy) NSArray *Boys;
@property (nonatomic, copy) NSArray *Girls;
@end
PersonsViewController.h
#import <UIKit/UIKit.h>
#import "Persons.h"
@interface PersonsViewController : UITableViewController
@property (nonatomic, strong) Persons *persons;
@end
PersonsViewController.m
#import "PersonsViewController.h"
NSArray *boys;
NSArray *girls;
...................
@synthesize persons;
...................
Communication *comm = [[Communication alloc] init];
self.persons = [comm getPersons];
boys = [self.persons Boys];
girls = [self.persons Girls];
答案 0 :(得分:1)
什么是[comm getPersons]返回?我认为这不是“人物”的对象。试试这个代码。
if ([[comm getPersons] isKindOfClass:[Persons class]])
{
NSLog(@"Not returning Persons object. So this is the error!");
}
答案 1 :(得分:0)
........我在这里错了,
但你有没有试过像
这样的东西NSArray *boys = [[[NSArray alloc] initWithArray[[comm getPersons]boys]autorelease];
对不起,自从我上次打开Xcode以来已经有几周了,所以对任何代码错误表示道歉,
您是否正在向NSArray注册/分配内存,执行类似
的操作NSLog(@"count %d",[[[comm getPersons]boys]count]);
至少应该告诉你boys数组存在,(假设它已经被创建)......
NSLog是你最好的朋友,我也建议学习如何使用调试器。