Добавление объектов в массив делегата приложения из контроллера представления в objective-c ios

Помогите мне добавить объекты в массив делегата приложения из UIViewController в Objective-C, я думаю, я делаю ошибку, помогите мне в этом отношении

Я хочу добавить объекты в массив делегата приложения из контроллера представления

в appdelegate.h

@property (nonatomic, retain) NSMutableArray *sharedArray;

в appdelegate.m

@implementation AppDelegate
@synthesize sharedArray;

внутри didfinishlaunching

self.sharedArray = [[NSMutableArray alloc] init];

в ViewController

@interface ViewController () {

    UIApplication *appDelegate;


Внутри viewdidload из viewcontroller

appDelegate = [[UIApplication sharedApplication] delegate];
[appdelegate.sharedArray addObject:array];

можешь объяснить, что ты хочешь делать?

RB's 11.04.2018 12:56

В чем твоя проблема? В любом случае декларировать appDelegate в ViewController не нужно.

trungduc 11.04.2018 12:57

Я хочу добавить объекты в массив делегата приложения из контроллера представления

iOS Developer 11.04.2018 12:57

@iOSDeveloper проверьте ответ Анбу.

trungduc 11.04.2018 12:59

заменить UIApplication * appDelegate; с этим AppDelegate * appDelegate;

RB's 11.04.2018 13:04

Что не работает? Где вы не можете использовать этот код?

Dheeraj D 11.04.2018 13:04

@RealmOfFire выдает ошибку Unknown type name 'AppDelegate' при определении AppDelegate * appDelegate;

iOS Developer 11.04.2018 13:12

импортируйте AppDelegate, где вы хотите использовать это

RB's 11.04.2018 13:13

спасибо, я забыл импортировать делегата приложения

iOS Developer 11.04.2018 13:25
0
9
124
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ваш код в порядке и правильный, но вам нужно инициализировать память вашего массива, прежде чем добавлять объект

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    self. sharedArray = [NSMutableArray array];

    return YES;
}

наконец, вызовите метод как

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
 [appDelegate.sharedArray addObject:array];

наконец, импортируйте заголовок

#import "AppDelegate.h"

Я добавил self.sharedArray = [[NSMutableArray alloc] init];

iOS Developer 11.04.2018 13:00

@ RealmOfFire- конечно, братан, это работает, нам нужно подтверждение от вопрошающего

Anbu.Karthik 11.04.2018 13:11

@ Anbu.karthik проголосовал за ваш ответ, но я забыл импортировать делегата приложения

iOS Developer 11.04.2018 13:26
Ответ принят как подходящий

Изменить декларацию

UIApplication *appDelegate;

к

AppDelegate *appDelegate;

//

self.appDelegate =  (AppDelegate *)[[UIApplication sharedApplication] delegate];

// сверху вы должны

#import "AppDelegate.h"

Неизвестное имя типа 'AppDelegate' при этом выдает эту ошибку

iOS Developer 11.04.2018 13:13

Удачного кодирования;)

Sh_Khan 11.04.2018 13:26

Другие вопросы по теме