如何解决从NSData获取整数
我正在使用一个能够从BTLE设备中提取数据并将其放置在NSData中的库。但是,我需要将数据的各个行拖入int的行中。我该怎么做?
代码如下:
- (void)realDataCallBackWithData:(NSData *)realData{
if (realData == nil) {
DLog(@"error");
return;
}
VTRealObject *rObj = [VTO2Parser parseO2RealObjectWithData:realData];
self.descLab.text = [rObj description];
}
- (UILabel *)descLab{
if (!_descLab) {
_descLab = elalloc initWithFrame:[UIScreen mainScreen].bounds];
_descLab.numberOfLines = 0;
_descLab.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:_descLab];
}
return _descLab;
}
这是库VTO2Parser.h代码:
#import <Foundation/Foundation.h>
#import "VTO2Info.h"
#import "VTO2Object.h"
#import "VTO2WaveObject.h"
#import "VTRealObject.h"
NS_ASSUME_NONNULL_BEGIN
@interface VTO2Parser : NSObject
// @brief parse O2 information
// @param infoData infoData from peripheral
+ (VTO2Info *)parseO2InfoWithData:(NSData * _Nonnull)infoData;
// @brief parse O2 object
// @param fileData fileData from peripheral
+ (VTO2Object *)parseO2ObjectWithData:(NSData * _Nonnull)fileData;
// @brief parse O2 Wave array .
// @param waveData waveData from VTO2Object
+ (NSArray <VTO2WaveObject *>*)parseO2WaveObjectArrayWithWaveData:(NSData *
_Nonnull)waveData;
// @brief parse O2 Real-time data
// @param realData realData from peripheral
+ (VTRealObject *)parseO2RealObjectWithData:(NSData *)realData;
// @brief parse O2 Real PPG data
// @param realPPG real PPG data from peripheral
+ (NSArray <VTRealPPG *>*)parseO2RealPPGWithData:(NSData *)realPPG;
@end
NS_ASSUME_NONNULL_END
这也是VTO2Object.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface VTRealObject : NSObject
// @brief blood oxygen value
@property (nonatomic,assign) u_char spo2;
// @brief heart rate
@property (nonatomic,assign) u_short hr;
// @brief battery value
@property (nonatomic,assign) u_char battery;
// @brief battery status
@property (nonatomic,assign) u_char batState;
// @brief Perfusion Index value
@property (nonatomic,assign) u_char pi;
// @brief lead status . for BabyO2: 0: Probe off 1: Lead normal 2: Lead off
@property (nonatomic,assign) u_char leadState;
// @brief motion value
@property (nonatomic,assign) u_char vector;
@end
@interface VTRealPPG : NSObject
// @brief Infrared
@property (nonatomic,assign) int ir;
// @brief RLED
@property (nonatomic,assign) int red;
// @brief motion
@property (nonatomic,assign) u_char motion;
@end
NS_ASSUME_NONNULL_END
应用内的最终结果如下:
-{ batState = 0; 电池= 66; hr = 76; leadState = 1; pi = 20; spo2 = 98;向量= 0;}
如何从上述数据中获取独立的整数,以便将其分配给各个标签?
解决方法
您的VTRealObject rObj
可能已经包含了所有想要的值,并将它们作为属性或方法返回值交给您。
如果没有,那么您需要做的就是VTO2Parser已经在做的事情:直接查看realData
并解析它,找到它包含的值并解释它们。为此,您必须了解realData
的 format 。这样,任务就很容易了。例如,如果您知道realData
的前两个/四个字节是代表long
的{{1}},那么将它们读取为batState
并不容易。依此类推。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。