像java这样的objective-c中的字节数组操作?
我想像我的ANDROID同事一样实现一个功能。下面是代码片段,我在将代码转换为objective-c时遇到问题。所以请给我指引正确的方向——谢谢 下面是代码片段像java这样的objective-c中的字节数组操作?,java,objective-c,bytearray,byte,Java,Objective C,Bytearray,Byte,我想像我的ANDROID同事一样实现一个功能。下面是代码片段,我在将代码转换为objective-c时遇到问题。所以请给我指引正确的方向——谢谢 下面是代码片段 public String createControlParams() { controlParams_ = ""; String expiry = ""; String delayedDelivery = ""; String restricted = "";
public String createControlParams() {
controlParams_ = "";
String expiry = "";
String delayedDelivery = "";
String restricted = "";
String priorityIndicator = "";
String acknowledgement = "";
//Note - PMessage.PRIORITY_INDICATOR_WHITE is defined as Int like 1,2,3
if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_WHITE) {
expiryTimeText_ = "";
restrictBackup = false;
restrictForward_ = false;
readAcknowledgement_ = false;
}
if (expiryTimeText_ != null && expiryTimeText_.length() > 0) {
int exptime = Integer.parseInt(expiryTimeText_);
byte h = (byte) (exptime / 60);
byte m = (byte) (exptime % 60);
expiry = new String(new byte[]{'E', 0, h, m});//??? how to get this thing in objective-c
}
if (delayDelivery) {
long timeDifference;
long deliveryTime;
// Fix
// if (midlet_.getPlatform().equalsIgnoreCase("rim")) {
//// timeDifference = Calendar.getInstance().getTimeZone().getRawOffset();
//// deliveryTime = (dateField_.getTime() - (dateField_.getTime() % (24 * 60 * 60 * 1000))) + (24 * 60 * 60 * 1000) + deliverySetTime_ - timeDifference;//+timeDifference;//(((Integer) timeSpinner.getValue()).longValue() * 1000);
// deliveryTime = (dateField_.getTime() + deliverySetTime_);// - timeDifference;
// } else {
deliveryTime = dateField_.getTime() + deliverySetTime_;// - timeDifference;
// }
if (deliveryTime > (new Date().getTime() + 2000)) { // Added to_ make message as instant delivery as opposed to_ delayed delivery if the delivery time is set in past (Added 2 seconds for message processing time)
delayedDelivery = "D" + deliveryTime;
}
}
if (restrictBackup && restrictForward_) {
restricted = new String(new byte[]{'R', (byte) 3});
} else if (restrictForward_) {
restricted = new String(new byte[]{'R', (byte) 1});
} else if (restrictBackup) {
restricted = new String(new byte[]{'R', (byte) 2});
}
if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_RED) {
priorityIndicator = new String(new byte[]{'P', (byte) PMessage.PRIORITY_INDICATOR_RED});
} else if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_YELLOW) {
priorityIndicator = new String(new byte[]{'P', (byte) PMessage.PRIORITY_INDICATOR_YELLOW});
} else if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_GREEN) {
priorityIndicator = new String(new byte[]{'P', (byte) PMessage.PRIORITY_INDICATOR_GREEN});
} else if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_GRAY) {
priorityIndicator = new String(new byte[]{'P', (byte) PMessage.PRIORITY_INDICATOR_GRAY});
} else if (priorityIndicator_ == PMessage.PRIORITY_INDICATOR_WHITE) {
priorityIndicator = new String(new byte[]{'P', (byte) PMessage.PRIORITY_INDICATOR_WHITE});
}
if (readAcknowledgement_) {
acknowledgement = new String(new byte[]{'A', PMessage.ACK_READ});
}
controlParams_ = priorityIndicator;
if (!expiry.equals("") && expiry != null) {
controlParams_ += (byte) (-128) + expiry;
}
if (!delayedDelivery.equalsIgnoreCase("") && delayedDelivery != null) {
controlParams_ += (byte) (-128) + delayedDelivery;
}
if (!restricted.equalsIgnoreCase("") && restricted != null) {
controlParams_ += (byte) (-128) + restricted;
}
if (!acknowledgement.equalsIgnoreCase("") && acknowledgement != null) {
controlParams_ += (byte) (-128) + acknowledgement;
}
return controlParams_;
// System.out.println(controlParams_);
}
private void getDraftControlParms(String controlParams_) {
if (!controlParams_.equals("") && controlParams_ != null) {
String[] sysParams = Helpers.splitUsingStringDelim(controlParams_, String.valueOf((byte) (-128)));
try {
for (int i = 0; i < sysParams.length; i++) {
if (!sysParams[i].equals("") && sysParams[i] != null) {
if (sysParams[i].substring(0, 1).equalsIgnoreCase("P")) {
priorityIndicator_ = (int) sysParams[i].getBytes()[1];
}
if (sysParams[i].substring(0, 1).equalsIgnoreCase("E")) {
int expiryFirstByte_ = sysParams[i].getBytes()[2];
int expirySecondByte_ =sysParams[i].getBytes()[3];
int expiryTime=(expiryFirstByte_ * 60) + (expirySecondByte_);
expiryMinutesField_.setText(expiryTime+"");
expiryTimeText_ = expiryMinutesField_.getText();
}
if (sysParams[i].substring(0, 1).equalsIgnoreCase("R")) {
int restrictedByte_ = (byte) sysParams[i].getBytes()[1];
if(restrictedByte_==1){
restrictForward_ = true;
restrictBackup = false;
}else if(restrictedByte_==2){
restrictForward_ = false;
restrictBackup = true;
}else{
restrictForward_ = true;
restrictBackup = true;
}
}
if (sysParams[i].substring(0, 1).equalsIgnoreCase("A")) {
readAcknowledgement_ = true;
}
}
switch (priorityIndicator_) {
case PMessage.PRIORITY_INDICATOR_RED: {
counter.getStyle().setBgColor(0xfe0002);
counter.getStyle().setBgTransparency(255);
break;
}
case PMessage.PRIORITY_INDICATOR_YELLOW: {
counter.getStyle().setBgColor(0xffff00);
counter.getStyle().setBgTransparency(255);
break;
}
case PMessage.PRIORITY_INDICATOR_GREEN: {
counter.getStyle().setBgColor(0x80ff00);
counter.getStyle().setBgTransparency(255);
break;
}
case PMessage.PRIORITY_INDICATOR_GRAY: {
counter.getStyle().setBgColor(0x919594);
counter.getStyle().setBgTransparency(255);
break;
}
case PMessage.PRIORITY_INDICATOR_WHITE: {
counter.getStyle().setBgColor(0xffffff);
counter.getStyle().setBgTransparency(255);
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
公共字符串createControlParams(){
controlParams_=“”;
字符串到期日=”;
字符串delayedDelivery=“”;
字符串限制=”;
字符串优先级指示器=”;
字符串“”;
//注-PMessage.PRIORITY_指示器_WHITE定义为Int,如1,2,3
if(优先级指示器=PMessage.PRIORITY指示器\u白色){
expiryTimeText_quo;;
restrictBackup=false;
restrictForward=假;
ReadAcknowledge=假;
}
if(expiryTimeText_979;!=null&&expiryTimeText_979;.length()>0){
int exptime=Integer.parseInt(expiryTimeText_);
字节h=(字节)(exptime/60);
字节m=(字节)(exptime%60);
expiry=newstring(新字节[]{E',0,h,m});/??如何在objective-c中获取此内容
}
如果(延迟交货){
长时差;
交货期长;
//修理
//if(midlet_u2;.getPlatform().equalsIgnoreCase(“rim”)){
////时差=Calendar.getInstance().getTimeZone().getRawOffset();
////deliveryTime=(dateField.getTime()-(dateField.getTime()%(24*60*60*1000))+(24*60*60*1000)+deliverySetTime\uTime-时差;///+时差;/((整数)timeSpinner.getValue()).longValue()*1000);
//deliveryTime=(dateField.getTime()+deliverySetTime);/-时差;
//}其他{
deliveryTime=dateField.getTime();
// }
如果(deliveryTime>(new Date().getTime()+2000)){//添加到uu使消息成为即时传递,而不是uu延迟传递,如果传递时间设置为过去(添加2秒的消息处理时间)
delayedDelivery=“D”+交货时间;
}
}
if(限制备份和限制转发){
受限=新字符串(新字节[]{'R',(字节)3});
}else if(限制前进){
受限=新字符串(新字节[]{'R',(字节)1});
}else if(限制备份){
受限=新字符串(新字节[]{'R',(字节)2});
}
if(优先级指示器=PMessage.PRIORITY指示器\u红色){
priorityIndicator=新字符串(新字节[]{'P',(字节)PMessage.PRIORITY_INDICATOR_RED});
}else if(优先级指示器=PMessage.PRIORITY指示器黄色){
priorityIndicator=新字符串(新字节[]{'P',(字节)PMessage.PRIORITY_INDICATOR_YELLOW});
}else if(优先级指示符=PMessage.PRIORITY指示符绿色){
priorityIndicator=新字符串(新字节[]{'P',(字节)PMessage.PRIORITY_INDICATOR_GREEN});
}else if(priorityIndicator_==PMessage.PRIORITY_INDICATOR_GRAY){
priorityIndicator=新字符串(新字节[]{'P',(字节)PMessage.PRIORITY_INDICATOR_GRAY});
}else if(priorityIndicator_==PMessage.PRIORITY_INDICATOR_WHITE){
priorityIndicator=新字符串(新字节[]{'P',(字节)PMessage.PRIORITY_INDICATOR_WHITE});
}
如果(重新确认){
确认=新字符串(新字节[]{'A',PMessage.ACK_READ});
}
控制参数=优先级指示器;
如果(!expiry.equals(“”&&expiry!=null){
controlParams+=(字节)(-128)+到期;
}
如果(!delayedDelivery.equalsIgnoreCase(“”)&&delayedDelivery!=null){
controlParams_+=(字节)(-128)+延迟交付;
}
如果(!restricted.equalsIgnoreCase(“”)&&restricted!=null){
controlParams+=(字节)(-128)+受限;
}
如果(!Acknowledge.equalsIgnoreCase(“”)&&Acknowledge!=null){
controlParams+=(字节)(-128)+确认;
}
返回控制参数;
//System.out.println(控制参数);
}
私有void getDraftControlParms(字符串控制参数){
如果(!controlParams_u3;等于(“”)&&controlParams_3;等于null){
String[]sysParams=Helpers.splitUsingStringDelim(controlParams,String.valueOf((字节)(-128));
试一试{
for(int i=0;i