像java这样的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 = "";

我想像我的ANDROID同事一样实现一个功能。下面是代码片段,我在将代码转换为objective-c时遇到问题。所以请给我指引正确的方向——谢谢

下面是代码片段

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