如何增加String.CharacterView.Index类型的变量?

时间:2016-09-12 04:43:07

标签: swift swift3

我正在尝试这个(在游乐场):

input[position]

...但是我收到以下错误消息:

  

错误:二元运算符'+ ='不能应用于类型的操作数   'String.CharacterView.Index'和'Int'

我试图增加这个索引的原因是因为我想做类似的事情:

  adMedcenter.setPositiveButton(R.string.Ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            edtMedname=(EditText)adAlert.findViewById(R.id.tvMed);
            edtMedid=(EditText)adAlert.findViewById(R.id.tvId);
            edtMedad=(EditText)adAlert.findViewById(R.id.tvaddrs);
            details=new Detail(edtMedname.getText().toString(),edtMedid.getText().toString(),edtMedad.getText().toString());
            detailsInflater=getLayoutInflater();
            inflaterView=detailsInflater.inflate(R.layout.inflate_add,null);
            ivIcon=(ImageView)inflaterView.findViewById(R.id.ivMedicon);
            txtMedName=(TextView)inflaterView.findViewById(R.id.tvMedname);
            txtMedId=(TextView)inflaterView.findViewById(R.id.tvMedid);
            txtMedAd=(TextView)inflaterView.findViewById(R.id.tvMedAddress);
            ivIcon.setImageDrawable(ResourcesCompat.getDrawable(getResources(),R.drawable.ivicon,null));
            txtMedName.setText(details.getStrMedname());
            txtMedId.setText(insert+details.getStrId());
            txtMedAd.setText(details.getStrAddress());
            rlContain.addView(inflaterView);
        }
    });

...并访问输入中的特定字符。

此时我已经知道我不能在位置上使用这个二元运算符。什么是可行的解决方案?

我正在使用Swift 3和Xcode Version 8.0 beta 6(8S201h)

1 个答案:

答案 0 :(得分:4)

在Swift 3中,“集合移动他们的索引”,比较  关于斯威夫特进化的A New Model for Collections and Indices

在你的情况下

private func advance() {
    input.formIndex(&position, offsetBy: 1)
}

将指数位置提前一个。在这里你必须确保 索引不等于endIndex,或者使用

private func advance() {
    input.formIndex(&position, offsetBy: 1, limitedBy: input.endIndex)
}