わかりました、正確な問題があったので、周りを見回しました。私が行ったのは、メインアプリと拡張機能をグループに追加することでした。メインプロジェクト->ターゲット->機能に移動し、次のようにグループを作成します(グループがない場合、またはとにかく作成します):
次に、ターゲットの下の拡張機能 (E) に移動し、再び Capabilities に移動して、次のように拡張機能をグループ (メイン ターゲットに対して行ったのとまったく同じアプリ グループ) に追加します。
次に、両方を実行したら、メイン アプリで何かを追加するたびに、NSUserDefaults の新しいインスタンスを作成しますが、Suitename は以前に作成したグループ名と同じです。このような:
NSArray *testing = @[@"first",@"Second",@"Third"];
NSUserDefaults *userd = [[NSUserDefaults alloc]initWithSuiteName:@"The gouprname I made earlier"];//This is exactly the same as the groupname
[userd setObject:testing forKey:@"ExtensionArray"];//set the object you want to share
[userd synchronize]; //It's a good idea to sync, just to be on the safe side.
拡張機能の ViewController で、同じグループ名を使用しますが、ユーザーの既定値を読み取ります。
NSUserDefaults *sharedD=[[NSUserDefaults alloc]initWithSuiteName:@"Exactly the same groupname that I gave both in the Capabilities and when initialising the userdefault"];
self.testing = [[NSArray alloc]initWithArray:[sharedD arrayForKey:@"ExtensionArray"]];
そして出来上がり!配列があります!Wormhole クラスを使用して、オブジェクトが変更されたときの通知機能を追加することもできるとどこかで読みましたが、それへのリンクが見つかりません。ワームホール クラスをググれば、きっと見つかるはずです。
お役に立てれば幸いです。さらに情報を見つけた場合は、私と共有してください。