как спросить массив, если объект содержится? - PullRequest
0 голосов
/ 18 августа 2010

как я могу спросить массив, содержит ли он элемент и делает ли он это [[NSArray alloc] initWithObjects: @ "Эти объекты" автоматически. это моя любимая .h

@interface FavoriteViewController : UITableViewController {
    NSMutableArray *favoritesArray;
    NSMutableArray *didContain;
}
@property (nonatomic, retain) NSMutableArray *favoritesArray;

@property (nonatomic, retain) NSMutableArray *didContain;

это .m

 favoritesArray = [[NSMutableArray alloc]init];
didContain = [[NSMutableArray alloc]init];

if 
([favoritesArray containsObject:@"one"])
{

    [didContain addObject:@"one"];
}

и в подробном контроллере. У меня есть этот код

[[NSMutableArray alloc] init];
[favoritesArray addObject: @"one"];

я заставляю стол работать, но ничего не появляется ....

Ответы [ 2 ]

0 голосов
/ 19 августа 2010

Использование filteredArrayUsingPredicate: См. Справочник по классам NSArray и Руководство по программированию предикатов

Похоже, что вы пытаетесь использовать неинициализированное свойство в контроллере подробного представления.

Обычно вы инициализируете свойства в реализациях методов init: или viewDidLoad, а затем перед представлением представления в родительском контроллере представления устанавливаете свойство с помощью средств доступа к свойствам

Эта строка:

// DetailViewController.m initializer code
[[NSMutableArray alloc] init]; // returned object is not used

Должно быть:

 favoritesArray = [[NSMutableArray alloc] init]; // view controller initialization code

Вместо того, чтобы называть это:

 [favoritesArray addObject:@"one"]; 

После создания вашего detailViewController установите favoritesArray с отфильтрованным массивом

// FavoriteViewController.m 
MyDetailViewController *dvc = [[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController" bundle:nil];

// populate the array
[dvc setFavoritesArray:didContain];

// Assuming you are using a navigation controller

[navigationController pushViewController:dvc animated:YES];
[dvc release];
0 голосов
/ 18 августа 2010
  NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil];
  NSMutableArray *didContain = [[NSArray alloc] init];


  if([yourArray contains: @"Hello"])
{
        [didContain addObject:@"Hello"];
}

или

  NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil];
  NSMutableArray *didContain = [[NSArray alloc] init];

  [didContain addObject: [yourArray objectAtIndex:[yourArray indexOfObject:@"Hello"]];

Все это и многое другое доступно в документах Apple.Пожалуйста, попробуйте поискать в Google в следующий раз.Удачи, Надеюсь это поможет.

...