Swift / Parse:如何获取已填入数据的最新项目?

时间:2017-07-27 02:23:11

标签: swift loops parse-platform swift3 backend

好的,我没有在任何地方找到这个。在Swift中,我需要获得最近添加的Parse项目,其中某些列填充了非零数据。如果MOST最近有一个或多个列为nil的列,我需要查询“select”并从下一个包含其所有数据的最新项中获取数据。

这就是我尝试过的方法 - 我可以使用.order(byDescending: "createdAt")成功获取最新项目,但是我需要获取字符串和图像,我无法选择最近填写了所有数据的文章。

我尝试遍历对象数组并选择PFObject但这会产生错误,因为我不想让VC类成为PFSubclassing类。

//Parse - store global values
            var query = PFQuery(className: PARSE_CLASS!)
            query.order(byDescending: "createdAt")
            query.limit = 1
            query.findObjectsInBackground {
                (objects, error) -> Void in

                var objToUse = PFObject()

                if error == nil {
                    //get obj
                    for o in objects!
                    {
                        if(o["testTxt"] != nil && o["testImg"] != nil)
                        {
                            objToUse = o
                        }
                    }

                    //--------------------------------------------------->
                    for item in contentLinkKeys
                    {

    //                txtSources[item] = (objects?.first?["\(item)-blurb"] as! String)
                        if(objToUse["testTxt"] != nil && objToUse["testImg"] != nil)
                        {

                            txtSources[item] = ((objToUse["testTxt"] as! String) as! String)

                        if let validObjects = objects {
                            for object in validObjects {
                                let thumbnail = objToUse["testImg"] as? PFFile
                                thumbnail?.getDataInBackground (block: { (data, error) -> Void in
                                    //read image here
                                    var img = UIImage(data: data!)
                                    imgSources[item] = img

                                })
                            }
                            }


                        } //if }

                    } //for bracket
                }

我怎么能这样做?现在如果最近的那个有一个零图像或其他什么,它只是不显示图像。我怎样才能让它知道迭代并找到填写了所有列的下一个最新版本?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作。这里发生的是我们首先以创建的日期顺序获取所有数据,然后过滤掉那些有效的数据,即那些具有所有必需字段的数据。然后我们下载图像数据并将其添加到源项目。

<meta http-equiv="X-UA-Compatible" content="IE=10" /> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
    <script src="js/ng-media.js"></script>



<script>

var myApp = angular.module('myApp', ['media']);

myApp.controller('MoocCtrl', function($scope, $http) {


 
   $scope.videoSources = [];
    
    $scope.loadVideos = function() {
            $scope.videoSources.push('https://example.com/images/Intro.mp4');
      
        };




});
  
    
    
  

</script>

但不是直接在集合中添加或添加图像不是好主意。您可以使用对象集合并在需要时下载图像