2017-01-28 1 views
0

for 루프에서 여러 배열을 반복하는 방법은 무엇입니까? 나는 지퍼 방법을 알고 있지만, 만약 내가 9 개의 배열이 있다면?다중 배열을 반복합니다.

var usernames  = [String]() 
var avatars   = [PFFile]() 
var postDescriptions = [String]() 
var locations  = [String]() 
var latitudes  = [String]() 
var longitudes  = [String]() 
var postFiles  = [PFFile]() 
var dates   = [Date]() 
var uniqueIDs  = [String]() 

그리고 여러 가지 형식으로되어 있습니다.

+6

: 다음 하나 개의 배열 작업

struct User { var username: String var avatar: PFFile var postDescription: String var location: String var latitude: String var longitude: String var postFile: PFFile var date: Date var uniqueID: String } 

과 : 당신은 정말 모든 9 개 속성을 포함하는 구조를 정의한다 . – kennytm

+2

당신은 ** 9 개의 배열을 가지지 않아야한다. ** 하나의'User' 클래스와 ** ** 그 클래스의 인스턴스 배열 ** 하나를 가져야한다. – luk2302

답변

3

zip 자체가 순서, 당신이 쓸 수 원칙적 있도록 :

for (username, (avatar, (postDescription, (location, (latitude, (longitude, (postFile, (date, uniqueID)))))))) 
    in zip(usernames, zip(avatars, zip(postDescriptions, zip(locations, zip(latitudes, zip(longitudes, zip(postFiles, zip(dates, uniqueIDs)))))))) { 
     // use `username`, `avatar` etc. 
} 

아아,이 혼란에서 모습을 (다른 옵션도 How can I run through three separate arrays in the same for loop? 참조)! 당신은 9 개 병렬 배열이있는 경우 구조체를 사용하도록 코드를 리팩토링해야 O_O

var users = [User]() 

for user in users { 
    // use `user.username`, `user.avatar` etc. 
}