Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从另一个类访问NSArray_Iphone_Objective C_Xcode_Macos - Fatal编程技术网

Iphone 从另一个类访问NSArray

Iphone 从另一个类访问NSArray,iphone,objective-c,xcode,macos,Iphone,Objective C,Xcode,Macos,可能重复: 如何将NSArray对象传递给另一个类?我不想使用extern访问它,那么还有其他方法可以实现这一点吗 另外请注意,我是一个初学者在本例中,tableDataSource是一个可以作为类的属性访问的NSArray 在您的界面声明(iPadTableWithDetailsViewController.h)中: 然后,在您的实现中定义(iPadTableWithDetailsViewController.m): 然后您可以从另一个类访问它,如下所示: - (void)doSomethi

可能重复:

如何将
NSArray
对象传递给另一个类?我不想使用
extern
访问它,那么还有其他方法可以实现这一点吗


另外请注意,我是一个初学者

在本例中,
tableDataSource
是一个可以作为类的属性访问的
NSArray

在您的
界面
声明(
iPadTableWithDetailsViewController.h
)中:

然后,在您的
实现中
定义(
iPadTableWithDetailsViewController.m
):

然后您可以从另一个类访问它,如下所示:

- (void)doSomething {
    iPadTableWithDetailsViewController *myViewController = [[iPadTableWithDetailsViewController alloc] initWithNibName:@"iPadTableWithDetailsViewController" bundle:nil];
    myViewController.tableDataSource = [NSArray arrayWithObjects:@"object1", @"object2", nil];
    NSLog(@"myViewController.tableDataSource: %@", [myViewController.tableDataSource description];
}
更多好信息和示例:




此方法的作用是什么
-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
?它初始化
UIViewController的自定义子类。我建议您在Xcode中创建一个模板项目,并通读注释和示例,那里有很多很好的信息。
#import "iPadTableWithDetailsViewController.h"

@implementation iPadTableWithDetailsViewController

@synthesize tableDataSource;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        self.tableDataSource = nil;
    }
    return self;
}

- (void)viewDidLoad {
    if (!tableDataSource) {
        self.tableDataSource = [NSArray array];
    }
}

.....

@end
- (void)doSomething {
    iPadTableWithDetailsViewController *myViewController = [[iPadTableWithDetailsViewController alloc] initWithNibName:@"iPadTableWithDetailsViewController" bundle:nil];
    myViewController.tableDataSource = [NSArray arrayWithObjects:@"object1", @"object2", nil];
    NSLog(@"myViewController.tableDataSource: %@", [myViewController.tableDataSource description];
}