Я могу получить NSArray, NSStrings из класса в другой ViewController, но один массив всегда пуст - PullRequest
0 голосов
/ 07 мая 2020

У меня есть информация о клиенте и номера клиентов, которые я получаю с сервера. Я могу получить эту информацию в viewcontroller2. Но есть один массив, который всегда пуст при получении из viewcontroller2. Он не пуст, когда я получаю данные из класса (Customer.m). Извините, но я новичок во всем этом. Я провел 4 дня, пытаясь понять, в чем я ошибся. Я также просмотрел десятки сообщений, чтобы попытаться найти ответ. Я попытался прочитать как можно больше информации, чтобы узнать, что мне не хватает, но у меня просто не получается заставить это работать. Что-то мне не хватает? (Заранее прошу прощения, если есть какие-то опечатки, я проверял их около десяти раз.)

Это Customer.m

    #import "Customer.h"

    @implementation Customer

    + (Customer *)sharedCustomer
    {
    static Customer *sharedCustomer;

    @synchronized(self)
    {
    if (!sharedCustomer)
        sharedCustomer = [[Customer alloc] init];

    return sharedCustomer;
    }
    }


-(void) GeneratefromDictionary:(NSDictionary *)dict{
self.customernumber = dict[@"CustomerNumber"];
self.firstname = dict[@"firstname"];
self.lastname = dict[@"lastname"];
self.Nowappointments = dict[@"Nowappointments"];
self.FamilyAccounts = dict[@"FamilyAccounts"];
self.listoffutureAppointments = [[NSMutableArray alloc]init];
self.listofpastAppointments = [[NSMutableArray alloc] init];
self.FamilyAccountsArray = [[NSArray alloc] init];

Это код, который я использую. (Это также Customer.m)

 NSArray *FamilyAccounts = [self.FamilyAccounts componentsSeparatedByString:@","];
 for (NSString* FamilyString in FamilyAccounts){

    NSLog(@"Print Family String%@",FamilyString);
 }
 NSArray *FamilyAccounts = [self.FamilyAccounts componentsSeparatedByString:@","];

 NSMutableArray* FamilyAccountssubArray = [FamilyAccounts mutableCopy];



NSNumber *CustomNumber2 = _CustomerNumber;
           [FamilyAccountssubArray addObject:CustomNumber2];

        NSMutableArray *CopyFamilyAccountArray = [FamilyAccountssubArray mutableCopy];

        NSArray *FamilyAccountsArray = [CopyFamilyAccountArray sortedArrayUsingDescriptors:
                                    @[[NSSortDescriptor sortDescriptorWithKey:@"intValue"
                                                                    ascending:NO]]];

        NSLog(@"sorted FamilyAccountsArray%@",FamilyAccountsArray);

Это возвращает массив без проблем.

Но когда я пытаюсь получить FamilyAccountsArray в ViewController2, я всегда получаю пустой массив. Но я могу получить другие массивы и строки. Например, для FamilyAccounts, listoffutureAppointments. Но не FamilyAccountsArray.

ViewController2

#import "ViewController2.h"
#import "Customer.h"
#import "AppDelegate.h"
#import <QuartzCore/QuartzCore.h>
#import <EventKit/EventKit.h>

Customer *thiscustomer;

Это работает.

    NSMutableArray *PrintCustomer = [[NSMutableArray alloc] init];
    PrintCustomer = thiscustomer.listoffutureAppointments;
    NSLog(@"Print the customer=%@",PrintCustomer);

Это тоже работает.

    NSArray *FamilyAccounts = [thiscustomer.FamilyAccounts componentsSeparatedByString:@","];

     NSLog(@"FamilyAccounts%@", FamilyAccounts);

Это не работает в ViewController2. Он всегда возвращает пустой массив.

 NSArray *familyAccountsView2 = [thiscustomer.FamilyAccountsArray componentsSeparatedByString:@","];

     NSLog(@"familyAccountsView2=%@", familyAccountsView2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...