У меня есть информация о клиенте и номера клиентов, которые я получаю с сервера. Я могу получить эту информацию в 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);