我有这个代码从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”]
这只是我选择的随机字母,条目可能是真的。但顺序很重要。有人可以检查我的代码,看看我哪里出错了?先感谢您。
答案 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})