내 앱을 테스트 할 때 내 친구가 얻는 오류입니다.하지만이를 재현 할 수 없습니다.인식 할 수없는 선택기가 인스턴스로 전송되었지만 이유를 알아낼 수 없습니다.
TransferFrequency.h
@interface TransferFrequency : NSObject
- (BOOL)isImmediate;
// Other details...
@end
TransferFrequency.m
@implementation TransferFrequency
// Other details...
- (BOOL)isImmediate
{
return YES;
}
@end
Transfer.h
@interface Transfer : NSObject
@property (nonatomic, retain) TransferFrequency* frequency;
// Other details...
@end
Transfer.m
@implementation Transfer
@synthesize frequency;
// Other details...
@end
을 : 나는 코드로 시작합니다3210
CreateTransferView.h
@interface CreateTransferView : UITableViewController
@property (nonatomic, retain) Transfer* transfer;
// Other details...
@end
CreateTransferView.m
@implementation CreateTransferView
@synthesize transfer;
// Other details...
- (void)confirmButtonTouched
{
// The crash happens on the following line, as confirmed by stack trace
if([self.transfer.frequency isImmediate])
// Do some stuff
}
@end
사용자가 확인 버튼을 터치
는confirmButtonTouched
가 호출됩니다.
-[TransferFrequency isImmediate]: unrecognized selector sent to instance 0xeec6db0
선택 isImmediate
가 합법적 인 TransferFrequency
개체에서 호출되고 나에게 나타납니다,하지만 아이폰이 그 선택을 찾을 수 없습니다 말하고있다 : 이것은 내 친구가 점점 오류입니다.
실제로이 오류를보고하는 iPhone이 여러 개 있지만 실제 액세스 권한이 없으므로 멀리에서 디버깅을합니다. 내 자신의 아이팟 터치, 아이폰, 그리고 아이폰 에뮬레이터 모두 잘 작동합니다.
어떤 원인 일 수 있습니까?
전송 초기화 메소드에서 빈도 객체를 만들었습니까? 아니면이 객체가 다른 객체에서 TransferFrequency를 얻었습니까? (이 동일한 질문 CreateTransferView.transfer)? –
코드가 잘 보입니다. 설명하는 효과로 이어질 것이라고 생각할 수있는 유일한 문제는 'TransferFrequency' 객체의 isa 포인터에 저장된 디스패치 테이블의 손상입니다. – dasblinkenlight
@TomaszWojtkowiak : CreateTransferView는'[self setTransfer : [[Transfer alloc] init]]'을 사용하여'viewDidLoad'에 새로운 Transfer 객체를 생성합니다. TransferFrequency 객체는 사용자가 하나를 선택할 때 설정됩니다. 'self.transfer.frequency = someFrequencyObject' – Aaron