Может быть, кто-то может мне помочь. Я просто не ошибаюсь. У меня есть простое приложение с TableView. В этой таблице View представлено много разных вещей. Когда пользователь нажимает на ячейку, он добирается до ViewController, где может видеть разные картинки и объяснения для выбранной ячейки (например, он нажимает на ячейку с именем Dog init, поэтому он будет видеть картинки и объяснения для собак). Для каждой «вещи» я создал собственный класс. Так, например, у меня есть классные собаки, кошки, машины .... В каждом классе я создал массив с изображениями и текстовыми файлами, который возвращается в TableViewController.Как поместить объект в массив?
Я создал различные объекты класса в TableViewController:
#import "IphoneTabelle.h"
#import "ViewController.h"
#import "Dogs.h"
#import "Cats.h"
@interface IphoneTabelle()
@end
@implementation IphoneTabelle
- (void)viewDidLoad {
[super viewDidLoad];
/
//create dog object for array
Dogs *dogClass = [[WLAN alloc]init];
_createdClassObjectArrayPics = dogClass.picsDogs;
_createdClassObjectArrayText = dogClass.textDogs;
//Cat objects created for array
Cats *catClass = [[ControlCenter alloc]init];
_createdClassObjectArrayPics = catClass.picsCats;
_createdClassObjectArrayText = catClass.textCats;
//create objects if they dont exists
if (!_objects){
_objects = [[NSMutableArray alloc] init];
}
//put the class-objects array in objects array
[_objects addObject:NSStringFromClass([dogClass class])];
[_objects addObject:NSStringFromClass([catClass class])];
Так Венна пользователь нажимает на Cell используется переход. Изображения и тексты должны быть помещены в массив из ViewController.h. Эти массивы используются для отображения изображений и текстов в ViewController.
Segue Код
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
ViewController *sendDataToViewController = segue.destinationViewController;
NSIndexPath *indexPath = nil;
NSArray *picturesArrayTableView = [[NSArray alloc]init];
NSArray *texteArrayTableView = [[NSArray alloc]init];
if([segue.identifier isEqualToString:@"show"]){
picturesArrayTableView = _createdClassObjectArrayPics[indexPath.row];
texteArrayTableView = _createdClassObjectArrayText[indexPath.row];
//picsArray and textsArray are declared in ViewController.H file
sendDataToViewController.picsArray= picturesArrayTableView;
sendDataToViewController.textsArray = texteArrayTableView;
}
Поэтому, когда пользователь нажимает на мобильный, я получаю сообщение об ошибке каждый раз, когда: 'NSInvalidArgumentException', причина: «- [__ подсчитывать NSCFConstantString]: непризнанные селектор направил к экземпляру 0x10becc198 '
Каким-то образом данные с картин и текстов не находятся в изображенияхArrayTableView и texteArrayTableView.
Как я могу получить работу только с одним сеансом? Я не хочу делать segue для каждой ячейки/объекта. Этот способ действительно действовал бы, но это действительно раздражает и беспорядочно, чтобы создать сотни сегментов.
Надеюсь, что смогу прояснить свой вопрос.
что это за собака.Клиенты возвращаются? –
'_createdClassObjectArrayPics' всегда будет иметь последний добавленный объект. В вашем случае это catClass.picsCats. – Mahesh
Различные классы возвращают массив для изображений и массив для текстов. – podoi17