请选择 进入手机版 | 继续访问电脑版
提问

#楼主# 2019-3-3

跳转到指定楼层
现在我的app用户已经可以添加商品并且编辑商品 ,然后我想做的是放一个textview,用户可以将文本粘贴进来后自动减少库存数量(因为我有问过一个电商朋友,他们平时都会把地址+商品一起粘贴到备忘录,方便发货,如果可以直接识别这些备忘录的文本并自动扣除库存会很好)。


我的思路是:创建一个装有商品object的array(这个已经做好了,还有一个将文本separate后拆分开的单独的nsstring object的array,将两个相互比较。如果找到了一样的string就开始count个数并且在tableview中的商品数量中自动减去。


目前我遇到的问题是不知道怎么separate文本中的文字。这里我昨天找到了一个例子,但是他是以一个file为文本,但是我的文本来自user input。这个是我找到的源代码(我有点困惑的地方是 这个方法是将分开来的string convert成object了吗?)







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具

0

主题

2

帖子

10

积分

超级版主

Rank: 8Rank: 8

积分
10
cuvii 发表于 2019-3-3 19:09:04
所以需要解决的一个问题是:已有一个字符串,和一个用于配对检测的数组。
需要实现的功能是:根据数组中的值对字符串进行配对,如果配对成功,count +1,然后删除字符串中已匹配到的值。
思路:1.首先实现字符串的配对 2.配对完成后,对字符串进行修改 3.删除库存。
解决方法:
第一步:使用rangeOfString()方法来循环配对字符串 str.rangeOfString("apple"),配对成功则count++。
第二步:使用remove()方法来删除字符串 str.remove(at: str.startIndex)。
第三步:库存减少,这里就需要你自己根据项目来操作了。

伪代码:

  1. //你的数组
  2. arr;

  3. //统计count的int数组,应该是和arr一样的
  4. counts;

  5. //用户输入的字符串
  6. str;


  7. //对数组进行遍历
  8. for(int i = 0; arr.length -1; i++){
  9.     if(str.rangeOfString(arr<i>)){
  10.         //匹配成功
  11.         //count + 1
  12.         counts<i> = counts<i>++;
  13.         //删除库存,需要你自己实现
  14.         Delete();
  15.         //修改字符串,删除已经匹配成功的内容
  16.         str.remove(at: arr<i>;)
  17.     }
  18. }</i></i></i></i>
复制代码



这是一种实现方法。如果想要效率更高,可以把对数组遍历的方法封装成方法,也可以不用int数组统计count,而设为方法的返回值,都是行得通的。
回复

使用道具 举报

B Color Link Quote Code Smilies

关于作者

valennxx

新手上路

  • 主题

    1

  • 帖子

    1

  • 关注者

    0

返回顶部