IOS에서 블루투스 주변 장치로 16 진수 데이터를 보내려고합니다. SEND라는 버튼 하나가 키보드를 닫고 텍스트 필드의 정보를 control이라는 지정된 특성으로 보내도록 사용자 지정 한 타사 키보드가 있습니다.다른 클래스의 메서드 호출, 전달되지 않은 변수
나는 두 클래스가 : 나는 BTLECentralViewController에 배치 버튼을 사용하는 경우
송신 기능이 잘 작동
MRHexKeyboard 및 BTLECentralViewController을,하지만 난 키보드에서 송신 함수를 호출 할 때이 쓸 수있는 특성이 없으므로 더 이상 작동하지 않습니다.
BTLECentralViewController에서: 나는 키보드 방법이 양식을 호출 할 때
-(IBAction)sendCmdControl:(id)sender;{
//When button is pressed send data
[self sendDataCMD];
}
-(void)sendDataCMD{
if (!_control) {
NSLog(@"No Characteristic to write to");
return;
}
//sending commandToSend to characteristic 'control'
[self.discoveredPeripheral writeValue:commandToSend forCharacteristic:self.control type:CBCharacteristicWriteWithResponse];
}
는 지금이
MRHexKeyboard 수행
BTLECentralViewController* myScript = [[BTLECentralViewController alloc] init];
[myScript sendDataCMD];
난 데 문제는 : 메소드 실행되지만이 변수를 전달하지 않았으므로 데이터를 보낼 특성이 없습니다.
나는 MRHexKeyboard 클래스가 BTLECentralViewController에 선언 된 절을 보지 못하기 때문에 그것을 믿는다. ??
@property (strong, nonatomic) CBCentralManager *centralManager;
@property (strong, nonatomic) CBPeripheral *discoveredPeripheral;
어떻게하면 다른 클래스에 액세스 할 수있게합니까 ??
저는 iOS 및 ObjectiveC에 매우 신선합니다.
'BTLECentralViewController * myScript = [[BTLECentralViewController alloc] init]'. 완전히 새로운 객체를 만들고 있습니다. – Larme
Larme의 덧글에 약간 확장 : 속성은 클래스가 아니라 객체 인스턴스에 있습니다. 새로운 속성을 제공하기 위해 무언가를하지 않는 한, 새 View Controller를 생성 (alloc & init)하면 nil centralManager 및 discoveredPeripheral 속성이 생성됩니다. 네가 기대하는 바가 분명하지 않아. 이것은 꽤 기본적인 OO 물건입니다. – CuriousRabbit
@CuriousRabit -> 감사합니다. 저는 OO 기초가 심각하게 부족하다고 생각합니다. -> 이것에 대한 좋은 참고 자료를 어디에서 찾을 수 있는지 아십니까? –