最近在研究一个蓝牙打印机,厂家网站上提供了一个IOS SDK,其中有个方法不知道怎么调用,以前完全没学过IOS,只会一丢丢java
现在已知有MyPeripheral.h、BLKWrite.h、ViewController.m,我想在ViewController.m中获取到didReceiveTransparentData里回传的数据,请大佬指点!MyPeripheral.h部分代码:@protocol MyPeripheralDelegate<NSObject>
@optional
- (void)MyPeripheral:(MyPeripheral *)peripheral didReceiveTransparentData:(NSData *)data;
@end
BLKWrite.h 部分代码:@interface BLKWrite : NSObject<MyPeripheralDelegate>
@property (nonatomic, strong) MyPeripheral *connectedPeripheral;
@property (nonatomic, assign) BOOL bWiFiMode; //YES: Wi-Fi模式;NO:蓝牙模式
@property (nonatomic, strong) NSString *serverIP;
@property (nonatomic, assign) int port;
+(BLKWrite*) Instance;-(void) writeTscData:(NSData*) data withResponse:(BOOL) flag;
-(void) writeEscData:(NSData*) data withResponse:(BOOL) flag;
-(BOOL) isConnecting;-(void) setPeripheral:(MyPeripheral*) peripheral;#pragma -Wi-Fi Mode-(void) initWiFiClient;-(int) PrintWidth;@end
现在已知有MyPeripheral.h、BLKWrite.h、ViewController.m,我想在ViewController.m中获取到didReceiveTransparentData里回传的数据,请大佬指点!MyPeripheral.h部分代码:@protocol MyPeripheralDelegate<NSObject>
@optional
- (void)MyPeripheral:(MyPeripheral *)peripheral didReceiveTransparentData:(NSData *)data;
@end
BLKWrite.h 部分代码:@interface BLKWrite : NSObject<MyPeripheralDelegate>
@property (nonatomic, strong) MyPeripheral *connectedPeripheral;
@property (nonatomic, assign) BOOL bWiFiMode; //YES: Wi-Fi模式;NO:蓝牙模式
@property (nonatomic, strong) NSString *serverIP;
@property (nonatomic, assign) int port;
+(BLKWrite*) Instance;-(void) writeTscData:(NSData*) data withResponse:(BOOL) flag;
-(void) writeEscData:(NSData*) data withResponse:(BOOL) flag;
-(BOOL) isConnecting;-(void) setPeripheral:(MyPeripheral*) peripheral;#pragma -Wi-Fi Mode-(void) initWiFiClient;-(int) PrintWidth;@end
解决方案 »
- 想问一下,腾讯开放平台申请的应用里面的key不是即时生效的吗?
- 求高手解决,或者一起讨论,itunesMobileDevices.dll的AFCFileRefOpen函数
- 问下 启动画面停留三秒我用的sleep 为什么真机测试黑屏停留了三秒
- IPhone ImageView 移动问题
- IOS6的腾讯QQ无法隐藏状态栏
- AutoLayout中UIlabel高度问题
- 求大佬帮忙看一下,有头文件但是引用还是会报错
- 关于发布包含Extension Target的app问题。
- 手动改别人的app
- 新手请教关于IOS系统读取用户卷的问题
- o c基础,新手。内存管理
- 有没有办法将c库编译成object-c库
既然有实例化这个类,应该不只有定义协议,还有其他的内容
项目结构如图
.m里是这样的
@interface ViewController ()<UITextFieldDelegate>@property(nonatomic, weak) UITextField *mCurrentUITextField;
typedef struct ARGBPixel{
u_int8_t red;
u_int8_t green;
u_int8_t blue;
u_int8_t alpha;
}ARGBPixel;@end@implementation ViewController
<UITextFieldDelegate,MyPeripheralDelegate>
然后再去实现一下协议中约定的didReceiveTransparentData方法.
不过你要弄清楚是哪个对象需要调用这个协议方法,必须把viewController设置为他的代理
类A需要代理帮他实现一个方法doSomething(),于是类A定了一个协议,单单定协议还不够,类A
还要有个属性用来指定代理是谁,代理可以是遵守了协议的任意对象
Aprotocol
{
doSomething();
}@interface A:NSObject
@property (nonatomic,weak) id<Aprotocol> delegate; //声明代理
@end然后在B类中你可以声明一下遵守协议
@interfaceB<Aprotocol>
@end然后实现协议中的方法
@implementation
-(void)doSomething{
print('xxxx');
}最后在A的实例那边指定b为他的代理就行了
A *a = [[A alloc] init];
a.delegate = b; //这一步很重要,不然a找不到代理