Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift数组大小限制和Xcode编译限制_Ios_Arrays_Xcode_Swift - Fatal编程技术网

Ios Swift数组大小限制和Xcode编译限制

Ios Swift数组大小限制和Xcode编译限制,ios,arrays,xcode,swift,Ios,Arrays,Xcode,Swift,我已经提取了OSX英语词典,想在我的Swift iPhone应用程序中使用它。它有大约236000个单词,我已经添加到一个swift字符串数组中 当我尝试运行构建时,编译需要很长时间,然后抛出分段错误11 这是因为阵列太大吗 在我的项目中添加英语词典的方法是否正确 您可能不应该将其存储为单个字符串。您可以使用更高效的数据结构,例如trie。您还应该考虑不将整个内容加载到内存中,但能够从文件系统导航。< P>我可以通过在XCODE项目中添加实际的字典文本文件来解决这个问题。然后利用下面的代码将单词

我已经提取了OSX英语词典,想在我的Swift iPhone应用程序中使用它。它有大约236000个单词,我已经添加到一个swift字符串数组中

当我尝试运行构建时,编译需要很长时间,然后抛出
分段错误11

这是因为阵列太大吗


在我的项目中添加英语词典的方法是否正确

您可能不应该将其存储为单个字符串。您可以使用更高效的数据结构,例如
trie
。您还应该考虑不将整个内容加载到内存中,但能够从文件系统导航。

< P>我可以通过在XCODE项目中添加实际的字典文本文件来解决这个问题。然后利用下面的代码将单词从文件填充到数组中。很快

let path = NSBundle.mainBundle().pathForResource("dict2", ofType: "txt")
let dico = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil)
let dict = dico!.componentsSeparatedByString("\n")

希望它能帮助别人。

你能在这里发布你的代码吗?特别是for循环部分是源代码的英语词典部分,还是将其作为资源添加并从文件系统中读取?英语中的平均单词有7个字符。236K字占用1.5MB。即使在iOS设备上,这也不算太大。我甚至还没有实现for循环。我只是声明了一个包含236000个字符串的数组。它在swift文件中,不是一个单独的资源文件。swift文件大约是2.5MBA。我自己回答说,我能够解决这个问题,但在阵列中循环仍然需要大约0.2秒,这对于我的应用程序来说是很慢的。我喜欢trie的想法,但这个概念对我来说是新的,我不知道如何在SWIFT中实现它。我需要一个额外的框架或扩展来完成它吗?我面临着一个类似的问题@Kashif“dict2”是一个支持文件“dict2.txt”吗?我只是将dict2.txt拖到我的项目中,并确保它的目标被选中