Objective-C 오류에서 어레이를 연결할 수 없습니다.

사용자 5369493

배열을 AnyObject 유형으로 인스턴스화하고 문자열 객체를 배열에 추가하면 다음 코드가 컴파일되지만 텍스트 필드에이 배열을 표시하려고하면 충돌이 발생합니다. 디버그 콘솔로 출력하려고 할 때 프로그램은 여전히 ​​충돌하며 다음 오류 메시지가 표시됩니다. "치명적인 오류 : Objective-C에서 어레이를 브리지 할 수 없습니다." 다음 방법은 swift와 호환되지 않습니까?

print ((jumperCablesRoles as! [String]). joinWithSeparator ( ","))

다음은 전체 코드베이스입니다.

    import UIKit


class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    var rejuvenatedEnterprisesEmployees = [
        Employees(name: "Jeffrey Wells", employeeRoles: ["Accountant", "Designer"], departmentID: 0),
        Employees(name: "Victor Atkins", employeeRoles: ["Director of IT", "Sales Stategist"], departmentID: 0),
        Employees(name: "Kelli Hamilton", employeeRoles: ["Director of Sales"], departmentID: 0),
        Employees(name: "Adam Braun", employeeRoles: ["Sales Lead"], departmentID: 1),
        Employees(name: "Brian Cruz", employeeRoles: ["Designer"], departmentID: 1),
        Employees(name: "Kristen Floyd", employeeRoles: ["Developer"], departmentID: 1),
        Employees(name: "Lois Martinez", employeeRoles: ["Curator", "Blogger"], departmentID: 2),
        Employees(name: "Michael Lind", employeeRoles: ["Sales, Administrator"], departmentID: 2),
        Employees(name: "Eric Bay", employeeRoles: ["Database Admin"], departmentID: 2),
        Employees(name: "Brandon Young", employeeRoles: ["Artist"], departmentID: 2)
    ]
    var rejuvenatedEnterprisesVictorsEmployees = [
        Employees(name: "Victor Atkins", employeeRoles: ["Director of IT", "Sales Stategist"], departmentID: 0),
        Employees(name: "Adam Braun", employeeRoles: ["Sales Lead"], departmentID: 1),
        Employees(name: "Brian Cruz", employeeRoles: ["Designer"], departmentID: 1),
        Employees(name: "Kristen Floyd", employeeRoles: ["Developer"], departmentID: 1)
    ]
    var rejuvenatedEnterprisesKellisEmployees = [
        Employees(name: "Kelli Hamilton", employeeRoles: ["Director of Sales"], departmentID: 0),
        Employees(name: "Lois Martinez", employeeRoles: ["Curator", "Blogger"], departmentID: 2),
        Employees(name: "Michael Lind", employeeRoles: ["Sales, Administrator"], departmentID: 2),
        Employees(name: "Eric Bay", employeeRoles: ["Database Admin"], departmentID: 2),
        Employees(name: "Brandon Young", employeeRoles: ["Artist"], departmentID: 2)
    ]
    var jumperCables: [String] = []
    var jumperCablez: [String] = []
    var jumperCablic: [String] = []
    var jumperCablesRoles: [AnyObject] = []
    var jumperCablezRoles: [String] = []
    var jumperCablicRoles: [String] = []


    @IBOutlet weak var employeePicker: UIPickerView!
    @IBOutlet weak var employeeNameLabel: UILabel!
    @IBOutlet weak var employeeListing: UITextView!
    @IBAction func addEmployee(sender: AnyObject) {

    }
    @IBOutlet weak var segmentedControl: UISegmentedControl!
    @IBAction func indexChanged(sender: UISegmentedControl) {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
            chosenManagerScrollView.backgroundColor = UIColor.yellowColor()
            var jumperCables: [String] = []
            for var i = 0; i < rejuvenatedEnterprisesEmployees.count ; ++i {
                    jumperCables.append(rejuvenatedEnterprisesEmployees[i].name)

                }
                chosenManagerScrollView.text = jumperCables[0]
                employeePicker.reloadAllComponents()

        case 1 where segmentedControl.selectedSegmentIndex == 1:
            let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
            chosenManagerScrollView.backgroundColor = UIColor.greenColor()
                var jumperCablez: [String] = []
                for var i = 0; i < rejuvenatedEnterprisesVictorsEmployees.count ; ++i {
                    jumperCablez.append(rejuvenatedEnterprisesVictorsEmployees[i].name)
                    chosenManagerScrollView.text = rejuvenatedEnterprisesVictorsEmployees[i].name
                }
                employeePicker.reloadAllComponents()

        case 2 where segmentedControl.selectedSegmentIndex == 2:
            let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
            chosenManagerScrollView.backgroundColor = UIColor.orangeColor()
            var jumperCablig: [String] = []
            for var i = 0; i < rejuvenatedEnterprisesKellisEmployees.count ; ++i {
                jumperCablig.append(rejuvenatedEnterprisesKellisEmployees[i].name)
            }
            chosenManagerScrollView.text = jumperCablig[0]
            employeePicker.reloadAllComponents()

        default:
            break; 
        }
    }


    override func viewDidLoad() {
        super.viewDidLoad()
        employeePicker.dataSource = self
        employeePicker.delegate = self

    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            return rejuvenatedEnterprisesEmployees.count

        case 1 where segmentedControl.selectedSegmentIndex == 1:
            return rejuvenatedEnterprisesVictorsEmployees.count

        case 2 where segmentedControl.selectedSegmentIndex == 2:
            return rejuvenatedEnterprisesKellisEmployees.count

        default:
            return 5
        }

    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            var jumperCabled: [String] = []
            for var i = 0; i < rejuvenatedEnterprisesEmployees.count ; ++i {
                jumperCabled.append(rejuvenatedEnterprisesEmployees[i].name)
            }
            return jumperCabled[row]

        case 1 where segmentedControl.selectedSegmentIndex == 1:
            var jumperCabling: [String] = []
            for var i = 0; i < rejuvenatedEnterprisesVictorsEmployees.count ; ++i {
                jumperCabling.append(rejuvenatedEnterprisesVictorsEmployees[i].name)
            }
            return jumperCabling[row]

        case 2 where segmentedControl.selectedSegmentIndex == 2:
            var jumperCab: [String] = []
            for var i = 0; i < rejuvenatedEnterprisesKellisEmployees.count ; ++i {
                jumperCab.append(rejuvenatedEnterprisesKellisEmployees[i].name)
            }
            return jumperCab[row]

        default:
            return "datsource corrupted"
        }
    }


    func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) ->UIView {

        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
                let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
                chosenManagerScrollView.backgroundColor = UIColor.yellowColor()
                for var i = 0; i < rejuvenatedEnterprisesEmployees.count ; ++i {
                    jumperCables.append(rejuvenatedEnterprisesEmployees[i].name)
                    jumperCablesRoles.append(rejuvenatedEnterprisesEmployees[i].employeeRoles)
                }
                chosenManagerScrollView.text = jumperCables[row]
                return chosenManagerScrollView

        case 1 where segmentedControl.selectedSegmentIndex == 1:
                let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
                chosenManagerScrollView.backgroundColor = UIColor.greenColor()
                for var i = 0; i < rejuvenatedEnterprisesVictorsEmployees.count ; ++i {
                    jumperCablez.append(rejuvenatedEnterprisesVictorsEmployees[i].name)
                }
                chosenManagerScrollView.text = jumperCablez[row]
                return chosenManagerScrollView

        case 2 where segmentedControl.selectedSegmentIndex == 2:
            let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
            chosenManagerScrollView.backgroundColor = UIColor.orangeColor()
            for var i = 0; i < rejuvenatedEnterprisesKellisEmployees.count ; ++i {
                jumperCablic.append(rejuvenatedEnterprisesKellisEmployees[i].name)
            }
            chosenManagerScrollView.text = jumperCablic[row]
            return chosenManagerScrollView

        default:
            let chosenManagerScrollView: UILabel = UILabel(frame: CGRectMake(40,0,170,72))
            chosenManagerScrollView.backgroundColor = UIColor.orangeColor()
            for var i = 0; i < rejuvenatedEnterprisesEmployees.count ; ++i {
                jumperCables.append(rejuvenatedEnterprisesEmployees[i].name)
            }
            chosenManagerScrollView.text = jumperCables[row]
            return chosenManagerScrollView

        }
    }


    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            employeeNameLabel.text = jumperCables[row]
            //employeeListing.text = (jumperCablesRoles as! [String]).joinWithSeparator(",")
            print((jumperCablesRoles as! [String]).joinWithSeparator(","))

        case 1 where segmentedControl.selectedSegmentIndex == 1:
            employeeNameLabel.text = jumperCablez[row]

        case 2 where segmentedControl.selectedSegmentIndex == 2:
            employeeNameLabel.text = jumperCablic[row]

        default:
            employeeNameLabel.text = jumperCables[row]

        }
    }




    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
Kabiroberai

현재 겪고있는 문제는 다음 코드 줄에 있습니다 jumperCablesRoles.append(rejuvenatedEnterprisesEmployees[i].employeeRoles)..

내가 알 수있는 한, s 자체 ( ) employeeRoles배열입니다 . 이는 직원 배열에 추가하면 실제로 s의 배열을 포함하는 배열임을 의미 합니다. ( ). 이것이 강제로 캐스팅하려고 할 때 실패하는 이유입니다.String[String]employeeRolesjumperCablesRolesjumperCablesRolesString[[String]][String]

원하는 결과가 정확히 무엇인지 잘 모르겠으므로 도움을 드릴 수는 없지만 원하는 경우 각 요소를 employeeRoles개별적으로 추가 할 수 있습니다 jumperCablesRoles. 그것이 당신이 원하는 것이라면 코멘트를 남겨 주시면 추가 코드를 제공하겠습니다.

편집 : 방금 진행하여 어쨌든 해결책을 찾았 jumperCablesRoles.append(rejuvenatedEnterprisesEmployees[i].employeeRoles)습니다. 다음으로 간단히 교체하십시오 .

rejuvenatedEnterprisesEmployees[i].employeeRoles.forEach {jumperCablesRoles.append($0)}

이것은 모든 employeeRole( String)을 jumperCablesRoles개별적으로 추가합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배열 요소는 Objective-C에 연결할 수 없습니다.

분류에서Dev

어셈블리에서 C ++ 함수를 연결할 수 없습니다.

분류에서Dev

Xcode 5 및 Objective-C에서 경고 및 작업 시트의 각 버튼에 연결할 수 없습니다.

분류에서Dev

FXCM 연결 오류-서버에 연결할 수 없습니다.

분류에서Dev

Swift에서 Objective-C 메서드를 호출 할 수 없습니다.

분류에서Dev

Objective-C (iOS) : 레이블의 텍스트를 수정할 수 없습니다.

분류에서Dev

C에서 데이터베이스에 연결할 수 없습니다.

분류에서Dev

C #에서 StackExchange redis를 사용하여 Twemproxy를 연결할 수 없습니다.

분류에서Dev

Gmail을 통해 이메일 보내기 C # 오류 # 10051 네트워크에 연결할 수 없습니다.

분류에서Dev

C # .NET Core 앱에서 Firebase Cloud Firestore를 연결할 수 없습니다.

분류에서Dev

Putty에서 VirtualBox의 Centos 7에 연결할 수 없습니다. 치명적인 오류 연결이 거부 됨

분류에서Dev

도커 빌드 오류 : psql : 서버에 연결할 수 없음 : 연결이 거부되었습니다.

분류에서Dev

NSTextAlignment는 Objective-C에서 표현할 수 없습니다.

분류에서Dev

지정된 MySQL 호스트에 연결할 수 없습니다. C # 오류

분류에서Dev

데이터베이스에 연결할 수 없습니다. 네트워크 오류 IOException : 연결 거부 : 연결

분류에서Dev

Tomcat에서 Drivermanager 오류를 해결할 수 없습니다.

분류에서Dev

릴레이 다시 가져 오기 실패 ... 오류 릴레이가 연결에서 에지를 조정할 수 없습니다.

분류에서Dev

Objective C에서 UIPickerview를 열 수 없습니다.

분류에서Dev

C #에서 SalesForce에 연결할 수 없습니다.

분류에서Dev

함수에서 변수를 연결할 수 없습니다.

분류에서Dev

Wiki Parsoid 오류-Parsoid 서버에 연결할 수 없습니다.

분류에서Dev

Objective-c에서 일부 Swift 함수를 호출 할 수 없습니다 (다른 기능은 작동 함).

분류에서Dev

Genymotion 에뮬레이터 : Firebase에 연결할 수 없습니다.

분류에서Dev

오류없이 hadoop을 시작하지만 서버에 연결할 수 없습니다.

분류에서Dev

Gnuplot 'QXcbConnection : 디스플레이에 연결할 수 없습니다'

분류에서Dev

C ++를 C 개체와 연결할 수 없습니다.

분류에서Dev

jquery에서 변수를 연결할 수 없습니다.

분류에서Dev

jquery에서 변수를 연결할 수 없습니다.

분류에서Dev

Objective-C 헤더 파일에서 C ++ 헤더 파일을 포함 할 때 컴파일 오류가 있습니다. iostream을 찾을 수 없습니다.

Related 관련 기사

  1. 1

    배열 요소는 Objective-C에 연결할 수 없습니다.

  2. 2

    어셈블리에서 C ++ 함수를 연결할 수 없습니다.

  3. 3

    Xcode 5 및 Objective-C에서 경고 및 작업 시트의 각 버튼에 연결할 수 없습니다.

  4. 4

    FXCM 연결 오류-서버에 연결할 수 없습니다.

  5. 5

    Swift에서 Objective-C 메서드를 호출 할 수 없습니다.

  6. 6

    Objective-C (iOS) : 레이블의 텍스트를 수정할 수 없습니다.

  7. 7

    C에서 데이터베이스에 연결할 수 없습니다.

  8. 8

    C #에서 StackExchange redis를 사용하여 Twemproxy를 연결할 수 없습니다.

  9. 9

    Gmail을 통해 이메일 보내기 C # 오류 # 10051 네트워크에 연결할 수 없습니다.

  10. 10

    C # .NET Core 앱에서 Firebase Cloud Firestore를 연결할 수 없습니다.

  11. 11

    Putty에서 VirtualBox의 Centos 7에 연결할 수 없습니다. 치명적인 오류 연결이 거부 됨

  12. 12

    도커 빌드 오류 : psql : 서버에 연결할 수 없음 : 연결이 거부되었습니다.

  13. 13

    NSTextAlignment는 Objective-C에서 표현할 수 없습니다.

  14. 14

    지정된 MySQL 호스트에 연결할 수 없습니다. C # 오류

  15. 15

    데이터베이스에 연결할 수 없습니다. 네트워크 오류 IOException : 연결 거부 : 연결

  16. 16

    Tomcat에서 Drivermanager 오류를 해결할 수 없습니다.

  17. 17

    릴레이 다시 가져 오기 실패 ... 오류 릴레이가 연결에서 에지를 조정할 수 없습니다.

  18. 18

    Objective C에서 UIPickerview를 열 수 없습니다.

  19. 19

    C #에서 SalesForce에 연결할 수 없습니다.

  20. 20

    함수에서 변수를 연결할 수 없습니다.

  21. 21

    Wiki Parsoid 오류-Parsoid 서버에 연결할 수 없습니다.

  22. 22

    Objective-c에서 일부 Swift 함수를 호출 할 수 없습니다 (다른 기능은 작동 함).

  23. 23

    Genymotion 에뮬레이터 : Firebase에 연결할 수 없습니다.

  24. 24

    오류없이 hadoop을 시작하지만 서버에 연결할 수 없습니다.

  25. 25

    Gnuplot 'QXcbConnection : 디스플레이에 연결할 수 없습니다'

  26. 26

    C ++를 C 개체와 연결할 수 없습니다.

  27. 27

    jquery에서 변수를 연결할 수 없습니다.

  28. 28

    jquery에서 변수를 연결할 수 없습니다.

  29. 29

    Objective-C 헤더 파일에서 C ++ 헤더 파일을 포함 할 때 컴파일 오류가 있습니다. iostream을 찾을 수 없습니다.

뜨겁다태그

보관