TextView обрабатывает много символов в Swift

Я сделал это ... Я использовал lodash. Мой код выглядит следующим образом:

var arrayData = [];
var teatData = [
  {
    "Attr": [
      {
        "power": { "p1": "str", "t3": "str" },
        "light": [
          {"test": "str"},
          {"test2": [ { "t4": "str" }]}
        ]
      }
    ]
  },
  {
    "Attr1": [
      {
        "power1": { "p2": "str", "t5": "str" },
        "light1": [
          { "test3": "str" },
          { "test_x": [
              { "t_x": "str" },
              { "t_y": [
                  { "t_y1": "str" }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
];

function getKeyArray(data, arrayData) {
    if (Array.isArray(data)) {
      _.forEach(data, (obj, key) => {
        this.getKeyArray(obj, arrayData);
      });
    } else if (_.isPlainObject(data)) {
      _.forEach(data, (obj, key) => {   
        if (obj === "str") {
          arrayData.push(key);
        } else if (Array.isArray(obj) || _.isPlainObject(obj)) {
          this.getKeyArray(obj, arrayData);
        }
      });
    }
  }
  
  getKeyArray(teatData, arrayData);
  
  console.log(arrayData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>

0
задан iaa 19 January 2019 в 19:59
поделиться

1 ответ

Я исправил это, и теперь оно намного быстрее. Это был метод skipSpace ().

func skipSpace () {
for _ in  spaceCount...textView.text.count {
    if checkSpace() == false {
        nextChar()
    }
}

Когда я набираю много текста, этот диапазон цикла становится огромным (spaceCount ... textView.text.count), потому что он получает количество символов в textView, поэтому его просто нужно было изменить на фиксированное число, например: (spaceCount ... 50), и все!

Спасибо

0
ответ дан iaa 19 January 2019 в 19:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: