2016-09-15 3 views
0

私はチャットメッセンジャーのタイプを構築するためにスイフト3を使用しています。 loggedInユーザーを格納するために、AnyObject型のonjectを使用しようとします。タイプ「AnyObject?」のイニシャライザを起動できません。引数なしで

var loggedInUser = AnyObject?() 

そしてそれは、次のエラー得られます ViewController.swift:29:24: '?ANYOBJECT' タイプの初期化子を呼び出すことはできませんが引数無し

+1

より具体的なタイプの 'User'の代わりに全く指定されていない型' AnyObject'を使用する目的、またはあなたがユーザに使用している型は何ですか? 'AnyObject'はイニシャライザをまったく持っていますか? – vadian

+0

あなたはそれを解決できましたか? –

+1

[Swift 3.0のUIView?()コンストラクタはどうなったのですか?](http://stackoverflow.com/questions/39549717/what-happened-to-the-uiview-constructor-in-swift-3- 0) – Hamish

答えて

0

AnyObjectはプロトコルです。

プロトコルには初期化子がありません。 ProtocolName()によってプロトコルのインスタンスを初期化することはできません。プロトコルのメソッドの実装を提供し、それらの実装を持つクラスのインスタンスを作成する必要があります。

ログインしたユーザーをAnyObjectとして保存することは適切ではないと思います。なぜなら、ユーザーは単なるオブジェクトではないからです。ユーザーはユーザーです!

あなたがすべきことは、Userという名前の構造体/クラスを作成し、ログインしているユーザーをその型のインスタンスとして格納することです。

関連する問題