-1

一个ViewController.h

#import <UIKit/UIKit.h>

@interface aViewController : UIViewController
@property (nonatomic) NSMutableArray *pageImages;
@end

bViewController.m

#import "aViewController.h"

// ...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger row = indexPath.row;

    aViewController *testViewController = [[aViewController alloc] init];
    [testViewController.pageImages addObject:@"lalala yeyeye"];

    NSLog(@"%@", testViewController.pageImages); // Error?

    [self.navigationController pushViewController:testViewController animated:YES];
}

bViewController.m中的 NSLog输出:

2013-10-08 18:23:38.398 quo.mk.e[56804:1ca03] (null)

我在这里做错了什么?为什么我在其中添加了一个对象,但 NSMutableArray 仍然为空?

更新:两个 UIViewController 对象都是以编程方式制作的。我正在使用此处提到的传递数据转发提示来填充数组,但我很难理解为什么它不起作用。

4

1 回答 1

5

当您分配aViewController时,它不会分配该类中的对象。

您还需要分配它们,这意味着您需要为NSMutableArrayelse分配内存nil

你应该这样做:

aViewController *testViewController = [[aViewController alloc] init];
testViewController.pageImages = [[NSMutableArray alloc] init];
[testViewController.pageImages addObject:@"lalala yeyeye"];
NSLog(@"%@", testViewController.pageImages);
于 2013-10-08T11:30:56.510 回答