我想创建像 windows 一样的文件夹结构逻辑。我为此使用 SQlite 数据库。我想每次都生成一个唯一的名称。例如,如果用户输入名称为“New”的文本。如果他再次输入相同的名称“New”,那么它应该是 New(1)。如果他再次输入相同的名称“New”,那么它应该是“New(2)”。如果用户删除“New(1)”条目并输入“New”,则“New(1)”应放在“New”和“New(2)”之间。
有人可以为此提出逻辑吗?任何帮助表示赞赏?在此先感谢光辉
我想创建像 windows 一样的文件夹结构逻辑。我为此使用 SQlite 数据库。我想每次都生成一个唯一的名称。例如,如果用户输入名称为“New”的文本。如果他再次输入相同的名称“New”,那么它应该是 New(1)。如果他再次输入相同的名称“New”,那么它应该是“New(2)”。如果用户删除“New(1)”条目并输入“New”,则“New(1)”应放在“New”和“New(2)”之间。
有人可以为此提出逻辑吗?任何帮助表示赞赏?在此先感谢光辉
这是我用来在应用程序中执行类似操作的逻辑:
NSString
被调用prefix
和一个NSInteger
被调用number
。number
为该数字的值和prefix
不带数字的名称。number
为 1 和prefix
名称。proposedName
从基数和数
构造一个:number
为 1,则使用裸prefix
.prefix
and 。number
proposedName
已在使用中。*
number
并再次循环。proposedName
是你的新名字。鉴于您使用的是 SQLite 数据库,您可以通过预取以您的前缀开头的名称并将它们加载到NSMutableSet
. 这比对每个单独的名称执行查询要快。
* 当你做这个测试时,你可能应该排除你已经在看的对象。这将允许您尝试“唯一化”现有对象的名称,而无需实际更改它。
我认为您将拥有一个以 id 和 foldername 作为字段的数据库。您只需要从数据库中检索所有记录。在查询中使用like运算符。一旦你得到列表进入一个循环并通过比较数字添加新条目。尝试这个。