#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对象都是以编程方式生成的。我正在使用the passing data forward tips mentioned here填充数组,但我很难理解为什么它不起作用。
答案 0 :(得分:5)
分配aViewController
时,它不会在该类中分配对象。
您还需要分配它们,意味着您需要为NSMutableArray
分配内存,否则它将是nil
。
你应该这样做:
aViewController *testViewController = [[aViewController alloc] init];
testViewController.pageImages = [[NSMutableArray alloc] init];
[testViewController.pageImages addObject:@"lalala yeyeye"];
NSLog(@"%@", testViewController.pageImages);