

Xcode
7.3で、storyboardを使わずにtableviewをクリックすると、DetailViewController.swiftへ画面遷移するソースを書いています。

CustomViewController.entryにself.List[indexPath.row]の値を代入したいのですが、cannnot assign
value of type self.List[indexPath.row]とエラーがでて、代入できません。

self.List[indexPath.row]にはURLが入っております。

sugueを使わずにCustomViewControllerにURLを受け渡す方法を、教えてください。

[code]

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    
        let CustomViewController = DetailViewController()
        CustomViewController.entry = self.List[indexPath.row]
        parent!.navigationController!.pushViewController(detailViewController , animated: true)
    }
    
[/code]


CC BY-SA 3.0
2017-02-09T02:49:02.633
32521
2017-04-20T22:45:49.937
2017-02-09T03:50:30.763
20577
question
swift2 xcode7
sugueを使わずにURLを受け渡す方法を、教えてください


> CustomViewController.entryにself.List[indexPath.row]の値を代入したいのですが、cannnot
> assign value of type self.List[indexPath.row]とエラーがでて、代入できません。

そのエラーは、型の不一致を示しています。`CustomViewController.entry`の型と、`self.List[indexPath.row]`の型が一致していないので、代入できないというメッセージです。  
Swiftは型に厳密な言語で、例えば、`Double`型の変数に、`Float`型の値を代入することさえできません。可能なのは、親クラスの型の変数に、子クラスのインスタンスを代入する、アップキャストと、Typealiasした型で、実体は同じものの間の代入、そして`Any`型変数への代入に限られます。

> self.List[indexPath.row]にはURLが入っております。

URLとだけ書かれても、それが文字列型なのか、`NSURL`のインスタンスなのかわからないと、先に進めません。そして、問題点は、「sugue（ママ）を使わずにURLを受け渡す方法」と、直接関係ありません。（`sugue`→`segue`）


CC BY-SA 3.0
2017-02-09T03:30:01.690
32522
2017-02-09T03:30:01.690
18540
32521
answer