【发布时间】:2011-09-06 17:27:58
【问题描述】:
我正在开始我的第一个 Cocoa 项目。我有一个严重的(对我而言)但可能很容易解决的问题(对你而言),我需要一些从哪里开始的方向。
简短描述:我构建了一个类“PortConnection.h”,当调用 -listPorts 函数时,它会将外部类 (AMSerial.h) 找到的所有端口写入一个数组。这是 PortConnection.h 的代码
#import <Cocoa/Cocoa.h>
#import "AMSerialPortList.h"
#import "AMSerialPortAdditions.h"
#import "AMSerialPort.h"
@interface PortConnection : NSObject {
@private
AMSerialPort *port;
NSMutableArray *portArray;
}
- (void)listDevices;
@property (nonatomic, retain) NSMutableArray *portArray;
@property (nonatomic, retain) AMSerialPort *port;
@end
并遵循 PortConnection.m
#import "PortConnection.h"
#import "AMSerialPortList.h"
#import "AMSerialPortAdditions.h"
#import "AMSerialPort.h"
@implementation PortConnection
@synthesize portArray;
@synthesize port;
- (void)listDevices
{
// get an port enumerator
NSEnumerator *enumerator = [AMSerialPortList portEnumerator];
AMSerialPort *aPort;
while ((aPort = [enumerator nextObject]))
{
// Add Devices to Array
[portArray addObject:[aPort bsdPath]];
}
}
到目前为止,它运行良好。 现在我的问题
我在 GUI 中实现了一个 tableView 来显示上面调用的方法的结果。该文件名为“PortTableViewController.h”,是我的 TableView 的数据源。
这是.h文件
#import <Foundation/Foundation.h>
#import "PortConnection.h"
@interface PortTableViewController : NSObject <NSTableViewDataSource> {
@private
IBOutlet NSTableView *portTableView;
}
@property (assign) IBOutlet NSTableView *portTableView;
@end
这是 .m 文件:
#import "PortTableViewController.h"
#import "PortConnection.h"
@implementation PortTableViewController
@synthesize portTableView;
#pragma mark -
#pragma mark TableView Delegates
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
PortConnection *portConnection = [[PortConnection alloc] init];
[portConnection listDevices];
return [portConnection.portArray count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
??????? I DO NOT HAVE A CLUE HOW TO ACCESS THE ARRAY IN PORTCONNECTION.M CORRECTLY
}
@end
问题:
1) 查看 TableViewDataSourceDelegates 时,如何正确访问 PortConnection.m 类中填充的 portArray。它似乎不像我那样工作。
2) 每次我想在 tableviewdelegate 方法中检索数据时,是否必须从 Portconnection.h 创建一个对象?
我真的很感谢各种帮助!我想学点东西..我真的很感谢你的支持!谢谢..为了帮助我的问题,不要犹豫。我真的很感激......
谢谢 塞巴斯蒂安
【问题讨论】:
标签: objective-c arrays cocoa class import