小编dco*_*ter的帖子

大型 JSON 文件 Swift

我正在制作一个用 Swift 编写的高尔夫应用程序。在我的应用程序内部,我有一个搜索栏,用户可以在其中搜索高尔夫球场。我在 Xcode 中有一个包含大型高尔夫球场数据库的大型 JSON 文件。我解析这个 JSON 数据库以提供高尔夫球场的名称和位置,然后在用户在搜索栏中搜索时显示它们。问题是 JSON 文件大小为 17MB,大约有 18,000 个高尔夫球场,这使得解析过程很长,并且高尔夫球场名称在用户开始在搜索栏中输入时不会开始填充,直到大约 6 秒。

我目前有一个 DataManager 类,它可以抓取我的 JSON 文件。我使用 SwiftyJSON 来帮助解析数据,然后将该数据附加到数组中,以便我可以在搜索栏的表视图中显示它。

有关如何加快解析如此大文件或减小文件大小的过程的任何建议?

提前致谢!

-我的数据管理器和解析我的 JSON 文件的函数的代码:

数据管理器:

 class DataManager {

   class func getGolfCoursesFromFileWithSuccess(success: ((data: NSData) -> Void)) {

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

  let filePath = NSBundle.mainBundle().pathForResource("golfCourseData",ofType:"json")

  var readError:NSError?
  do {
    let data = try NSData(contentsOfFile:filePath!,
      options: NSDataReadingOptions.DataReadingUncached)
    success(data: data)
    } catch let error as NSError {
    readError = error
    print(readError)
     } catch {
      fatalError()
     }
   })
  }
 }
Run Code Online (Sandbox Code Playgroud)

解析 …

json large-files ios swift swifty-json

1
推荐指数
1
解决办法
2423
查看次数

禁用单元格滑动操作

所以我有一个应用程序(用Swift编写),允许用户在searchController中搜索高尔夫球场.然后他们可以选择该课程,然后选择的课程进入tableView.我正在为搜索控制器和所选课程列表使用相同的视图控制器.

我遇到的问题是我希望用户能够滑动以删除他们选择的课程,但不是在搜索控制器处于活动状态时填充搜索控制器的课程.滑动删除操作正在常规tableView中工作.当searchController处于活动状态时,我将其置于禁用删除按钮的位置.但是,如果searchController处于活动状态,我想要做的就是没有单元格能够完全滑动.似乎无法让它发挥作用.有什么建议?谢谢,麻烦您了.

这是我的代码:

 override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    if searchController.active {

    UITableViewCellEditingStyle.None

    } else {

    let deletedValue = previousCoursesFromRealm[indexPath.row]

    if editingStyle == UITableViewCellEditingStyle.Delete {
        let realm = try! Realm()
        try! realm.write {
        realm.delete(deletedValue)
        }

     coursesTableView.reloadData()

     }
    }
   }  
Run Code Online (Sandbox Code Playgroud)

uitableview tableviewcell swift edit-tableview

1
推荐指数
1
解决办法
3312
查看次数