字符串数组中的顺序错误

时间:2016-07-19 21:50:49

标签: arrays swift delegates segue

我有这个代码从textfield传递条目并将它们添加到另一个视图控制器中的字符串数组。问题是,订单不正确。

这是我的代码:

import Promise from 'bluebird'
import axios from 'axios'
import {
  graphql,
  GraphQLSchema,
  GraphQLObjectType,
  GraphQLString
} from 'graphql'

var userType = new GraphQLObjectType({
  name: 'User',
  fields: {
    id: { type: GraphQLString },
    name: { type: GraphQLString },
  }
});

var schema = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'Query',
    fields: {
      user: {
        type: userType,
        args: {
          id: { type: GraphQLString }
        },
        resolve: function () {
          console.log(arguments)
          return Promise.resolve({"name": 'meow'})
        }
      }
    }
  }),
  mutation: new GraphQLObjectType({
    name: 'Mutation',
    fields: {
      createUser: {
        type: userType,
        args: {
          name: {
            name: 'name',
            type: GraphQLString
          }
        },
        resolve: () => {
          console.log(arguments)
          return Promise.resolve({"name": 'meow'})
        }
      }
    }
  })
})

var mutationRequest = `
mutation basic($name: String!) {
  createUser(name: $name) {
    name
  }
}
`

graphql(schema, mutationRequest, null, null, {name: 'Thomas'}).then(result => {

  console.log(result)

})

var queryRequest = `
query basic($id: String!) {
  user(id: $id) {
    name
  }
}
`

graphql(schema, queryRequest, null, null, {id: '1'}).then(result => {

  console.log(result)

})

但是我不知道我的代码有什么问题,为什么它会向我的数组发送错误的顺序。我的数组看起来像这样:

[“q”,“w”,“e”,“t”,“y”,“r”]

什么时候应该...

[“q”,“w”,“e”,“r”,“t”,“y”]

这只是我选择的随机字母,条目可能是真的。但顺序很重要。有人可以检查我的代码,看看我哪里出错了?先感谢您。

2 个答案:

答案 0 :(得分:3)

您需要对要检索的UITextField(s)进行排序

所以替换这个

destination.stringArray = view.subviews.flatMap { ($0 as? UITextField)?.text }

用这个

destination.stringArray = view
    .subviews
    .flatMap { $0 as? UITextField }
    .sort { $0.0.tag < $0.1.tag }
    .flatMap { $0.text }

答案 1 :(得分:1)

或者,从标记转到字段而不是字段到标记:

destination.stringArray = (1...6).flatMap({ (view.viewWithTag($0) as? UITextField).text})