Java函数的Objective-C等价
如何编写与此Java代码等价的Objective-CJava函数的Objective-C等价,java,objective-c,arrays,Java,Objective C,Arrays,如何编写与此Java代码等价的Objective-C public static @Nullable byte[] getUnknownData(Sample s){ int length = s.data.length-index; byte data[] = new byte[length]; for(int i=0;i<length;i++){ data[i]=s.data[UNKNOWN_STATUS_INDEX+i].byteValue()
public static @Nullable byte[] getUnknownData(Sample s){
int length = s.data.length-index;
byte data[] = new byte[length];
for(int i=0;i<length;i++){
data[i]=s.data[UNKNOWN_STATUS_INDEX+i].byteValue();
}
return data;
}
您应该使用
NSMutableData
,它是NSData
的可修改子类:
-(NSData *)getUnknownData:(Sample s){
int length = s.data.count-index;
NSMutableData *theData = [NSMutableData dataWithCapacity:length];
theData.length = length;
char *theBytes = (char *)theData.mutableBytes;
for(int i = 0; i < length; ++i) {
theBytes[i] = (char)[s.data[UNKNOWN_STATUS_INDEX + i] intValue]
}
return [theData copy];
}
-(NSData*)getUnknownda:(示例s){
int length=s.data.count-index;
NSMutableData*数据=[NSMutableData数据带容量:长度];
data.length=长度;
char*theBytes=(char*)theData.mutableBytes;
对于(int i=0;i
保留所需的字节数后,您必须将数组中的每个值转换为数据对象。我有一个错误:在“NSArray*”类型的对象上找不到属性“bytes”,在保留所需的字节数后,仅作为旁注:容量不是实例可以容纳的字节总数,只是一个提示。是的,你是对的。但我的意思是
theData.length=length代码>这将确保字节缓冲区的大小至少为长度
字节,并且数据对象不能使其变小。
-(NSData *)getUnknownData:(Sample s){
int length = s.data.count-index;
NSMutableData *theData = [NSMutableData dataWithCapacity:length];
theData.length = length;
char *theBytes = (char *)theData.mutableBytes;
for(int i = 0; i < length; ++i) {
theBytes[i] = (char)[s.data[UNKNOWN_STATUS_INDEX + i] intValue]
}
return [theData copy];
}