Добавить объекты в NSMutableArray и использовать его несколько раз в моем проекте (Цель C) - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в Objective C, я пытаюсь добавить объекты в NSMutableArray и использовать его несколько раз в моем проекте. У меня есть класс Model:

MainTarget.h

@interface Target1 : NSObject

@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *url;
@property (strong, nonatomic) NSString *value;



- (instancetype) initWithTarget1: (NSString *)name andurl: (NSString *)url andvalue: (NSString *)value;



@end

MainTarget.m

#import <Foundation/Foundation.h>

#import "MainTarget.h"

@implementation Target1

- (instancetype) initWithTarget1: (NSString *)name andurl: (NSString *)url andvalue: (NSString *)value {

    self = [super init];

    if (self) {
        self.name = name;
        self.url = url;
        self.value = value;

    }
    return self;
}


@end

Я получаю результаты моего json в ViewController.m, а затемсоздайте объект Target1 и установите переменные.

for (NSDictionary *targetparameters in parsedJSONArray) {
 Target1 *target = [[Target1 alloc]init];

  target.name = targetparameters[@"name"];
  target.url = targetparameters[@"url"];
  target.value = targetparameters[@"value"];
}

Это мой json api.

[{"id":"1","cat_id":"0","id_user":"0","id_point":"1","name":"","phone":"","url":"http:\/\/rsm.tours\/api\/folder\/ar\/aaaa19-07-09-5-13-38.png","value":"http:\/\/rsm.tours\/api\/folder\/ar\/aaaa19-07-09-5-13-38.mp4","state":"1"},{"id":"2","cat_id":"0","id_user":"0","id_point":"1","name":"","phone":"","url":"https:\/\/i.pinimg.com\/736x\/f9\/24\/43\/f92443e14d3e08d773881aef156e55c2.jpg","value":"https:\/\/hw20.cdn.asset.aparat.com\/aparat-video\/38888e829661bc305f7944b4f930c15515677561-144p__46889.mp4","state":"1"}]

Я хочу добавить цель в NSMutableArray и использовать ее в функции (инициализировать)myAR.m с циклом for.

myAr.m

BOOL initialize()
{
      // for loop
}

1 Ответ

0 голосов
/ 19 октября 2019

Если вы работаете с раскадровками и переходами, выполните следующие действия.

  1. После создания каждого Target1 просто добавьте его в переменную NSMutableArray, например:

    NSMutableArray *targetArray = [NSMutableArray array];
    for (NSDictionary *targetparameters in parsedJSONArray) {
     Target1 *target = [[Target1 alloc]init];
    
      target.name = targetparameters[@"name"];
      target.url = targetparameters[@"url"];
      target.value = targetparameters[@"value"];
      [targetArray addObject:target];
    }
    // step 3.1
    
  2. Итак, в каждом ViewController, если вам нужен targetArray, подготовьте свойство для его получения.

    @interface ViewController2 : UIViewController
    
    @property (nonatomic, strong) NSMutableArray *targetArrayVC2;
    
  3. Наконец, в ViewController1 передайте targetArray через executeSegueи prepareForSegue: segue: делегат отправителя.

    // 3.1 
    [self performSegueWithIdentifier:@"segueViewController2" sender: targetArray];
    
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
            if ([[segue identifier] isEqualToString:@"segueViewController2"]){
                    ViewController2 *viewController2 = (ViewController2 *)[segue destinationViewController];
                    [viewController2 setTargetArrayVC2:sender]; // sender = targetArray
            }
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...