Iphone NSInvalidArgumentException

Iphone NSInvalidArgumentException,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我正在研究“iPhone开发:大书呆子牧场指南”。该项目是“随机财产”。我忠实地遵循书中的代码,它编译正常,但运行时出现以下异常: **2010-07-04 11:43:48.511 RandomPosessions[14828:a0f] -[Posession initWithPosessionName:valueInDollars:serialNumber:]: unrecognized selector sent to instance 0x10010d1f0 2010-07-04 11:

我正在研究“iPhone开发:大书呆子牧场指南”。该项目是“随机财产”。我忠实地遵循书中的代码,它编译正常,但运行时出现以下异常:

**2010-07-04 11:43:48.511 RandomPosessions[14828:a0f] -[Posession initWithPosessionName:valueInDollars:serialNumber:]: unrecognized selector sent to instance 0x10010d1f0 2010-07-04 11:43:48.514 RandomPosessions[14828:a0f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Posession initWithPosessionName:valueInDollars:serialNumber:]: unrecognized selector sent to instance 0x10010d1f0' *** Call stack at first throw: ( 0 CoreFoundation 0x00007fff80b4bcc4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff8044b0f3 objc_exception_throw + 45 2 CoreFoundation 0x00007fff80ba5140 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0 3 CoreFoundation 0x00007fff80b1dcdf ___forwarding___ + 751 4 CoreFoundation 0x00007fff80b19e28 _CF_forwarding_prep_0 + 232 5 RandomPosessions 0x00000001000016c2 +[Posession randomPosession] + 995 6 RandomPosessions 0x0000000100001196 main + 170 7 RandomPosessions 0x00000001000010e4 start + 52 ) terminate called after throwing an instance of 'NSException'** 我把头发一团一团地拔出来! 我非常感谢你的帮助
干杯

您需要更好地设置输入格式

但你的问题是你定义的方法不正确

-(id)initWithPosessionName: (NSString *)pName valuesInDollars:(int)valueserialNumber:(NSString *)sNumber
那应该是

-(id)initWithPosessionName: (NSString *)pName valueInDollars:(int)valueserialNumber:(NSString *)sNumber
你有一个额外的“s”


我几乎可以保证Xcode会就此向您发出警告。在Objective-C中,警告通常会导致运行时崩溃,如下所示。在放弃某个问题之前,清除所有警告是一个好习惯。

我不想成为一个聪明的傻瓜,但这是方法的定义,而不是宣言。谢谢Joshua。我知道这就像打字一样简单——很好的识别!如果我不知道他们指的是什么,我会去注意他们的警告,但这并没有帮助。我修正了输入错误,但现在我又收到了两个警告,它在-(NSString*)description{NSString*descriptionString=[[NSString alloc]initWithFormat:@“%@(%@):值$%@,记录在%@”,posessionName,serialNumber,valueInDollars,dateCreated];返回descriptionString;}(对象超出范围)问题是我甚至没有调用描述方法
-(id)initWithPosessionName: (NSString *)pName valueInDollars:(int)valueserialNumber:(NSString *)sNumber