1

まず第一に、私の英語で申し訳ありません、それは私の母国語ではありません:)

私はこのクラッシュを取得しています

「キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[__NSCFNumber isEqualToString:]: 認識されないセレクターがインスタンス 0x68b9d00 に送信されました'」.

ここで同様のエラーや質問がたくさん見られましたが、原因は私のものとは大きく異なりました。

呼び出されたイベントNSObjectを通過しようとする があります。prepareForSegueイベントは 3NSStringで構成されています。ここに私の 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"しかし、をに入れようとするとUILabel、エラーが発生します。

エラーが発生したコードは次のとおりです。 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

おそらく、これは、設定されている変数が (宣言されている) NSString ではなく NSNumber であるためです。この変数のセッターを実装し、違反者を見つけるように設定されている場合、タイプが NSString であることをテストできます。

于 2012-07-19T05:18:46.710 に答える