1

首先,对不起我的英语,这不是我的母语:)

我遇到了这个崩溃

“由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__NSCFNumber isEqualToString:]:无法识别的选择器发送到实例 0x68b9d00'”。

我在这里看到了很多类似的错误和问题,但原因与我的非常不同。

我有一个NSObject我试图通过一个prepareForSegue名为的事件。事件由 3 组成NSString,这是我的 Event.h :

@interface              Event : NSObject
{
    NSString*           idEvent;
    NSString*           lat;
    NSString*           lng;
}

@property NSString*     idEvent;
@property NSString*     lat;
@property NSString*     lng;

@end

当我得到另一边的 Event 对象时,我可以输出 Event 的内容get(NSLog(@"%@", eventGet.lat); )并且它工作正常。但是当我尝试将其"eventGet.lat"放入 aUILabel时,我得到了错误。

这是发生错误的代码: DetailEvent 是我获取事件的视图。

细节事件.h:

@interface  DetailEvent : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *latEvent;
@property (weak, nonatomic) IBOutlet UILabel *lngEvent;

@property (strong, nonatomic) Event* eventGet;

@end

和 DetailEvent.m :

@implementation DetailEvent

@synthesize latEvent            = _latEvent;
@synthesize lngEvent            = _lngEvent;

@synthesize eventToDisplay      = _eventToDisplay;

- (void)viewDidLoad
{
    [super viewDidLoad];

    // works fine
    NSLog(@"Event lat : %@", _eventToDisplay.lat);

    // here is the crash
    _latEvent.text = _eventToDisplay.lat;
}

这让我很困惑,我将不胜感激!

谢谢 !

4

1 回答 1

3

据推测,这是因为设置的变量是 NSNumber,而不是 NSString(如声明的那样)。你可以为这个变量实现 setter 并在设置为查找违规者时测试类型是否为 NSString。

于 2012-07-19T05:18:46.710 回答