複数のView Controllerでプライベートデータオブジェクトを使用するテストプロジェクトがあります。(Webとgit-hubからダウンロードしました)
- (ExampleAppDataObject*) theAppDataObject;
{
id<AppDelegateProtocol> theDelegate = (id<AppDelegateProtocol>) [UIApplication sharedApplication].delegate;
ExampleAppDataObject* theDataObject;
theDataObject = (ExampleAppDataObject*) theDelegate.theAppDataObject;
return theDataObject;
}
最初の質問は、theDelegate が AppDelegateProtocol でキャストされたということです。このアプリケーションの UIApplication デリゲート名が ViewControllerDataSharingAppDelegate であったとしても、警告はありません。理由はわかりませんが、それは id タイプだったからでしょうか? (AppDelegateProtocol は、彼が AppDelegate で宣言したカスタム デリゲート プロトコルです。)
第 2 に、すべてのビュー コントローラーでこの種のコードが表示され、1 トンのパターンのように見えます。これがView Controller間でデータを転送する最良の方法ではないと思います。オブジェクトのデータ型を転送する最良の方法はどれですか?
ありがとう。