Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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
Xcode NSArray和tableview可可应用程序_Xcode_Cocoa - Fatal编程技术网

Xcode NSArray和tableview可可应用程序

Xcode NSArray和tableview可可应用程序,xcode,cocoa,Xcode,Cocoa,我有一个带有多个属性的对象实例的NSArray。我想知道如何在cocoa应用程序的tableview中显示实例的NSString和int属性。对不起,我是新手 卡片被设计用来保存单个卡片的属性 deck设计用于容纳一个NSArray,其中填充有卡片和名称,以便deckBuilder和deckstructure引用 deckBuilder用于基于其属性newDeck构建甲板实例。(newDeck从所有可能的卡片开始,复制时删除卡片条目以创建新的卡片组) deckConstruction是一个用户界

我有一个带有多个属性的对象实例的
NSArray
。我想知道如何在cocoa应用程序的tableview中显示实例的
NSString
和int属性。对不起,我是新手

卡片被设计用来保存单个卡片的属性

deck
设计用于容纳一个
NSArray
,其中填充有卡片和名称,以便
deckBuilder
deckstructure
引用

deckBuilder
用于基于其属性
newDeck
构建甲板实例。(
newDeck
从所有可能的卡片开始,复制时删除卡片条目以创建新的卡片组)

deckConstruction
是一个用户界面,.xib包含一个表,用于显示
NSMutableArray
、deck中的卡名以及
NSMutableArray
、numberoff中的数字值

但是,我找不到关于如何从数组填充此表的源代码。(提供的代码由这些对象的4.h文件组成)

//这是卡对象
//卡片
//项目JJ
//
//由来宾用户于2014年3月23日创建。
//
//
#进口
@接口卡:NSObject
{
//定义卡片的组成部分
NSString*名称;
NSString*属性;
浮子液位;
NSString*类型;
NSString*信息;
漂浮攻击;
浮动防守;
浮点数;
}
@属性(读写)NSString*名称;
@属性(读写)NSString*属性;
@属性(读写)浮动级别;
@属性(读写)NSString*类型;
@属性(读写)NSString*info;
@属性(读写)浮动攻击;
@财产(读写)浮动防御;
@属性(读写)float cardNum;
-(b)信用卡;
@结束
//这是甲板对象
//甲板
//卡德西姆
//
//由来宾用户于2014年4月11日创建。
//
//
#进口
#导入“Card.h”
//用户组的组对象
@接口组:NSObject
{
NSString*deckName;//组名
NSMUTABLEARRY*allCards;//将在界面中显示数据库中的所有卡,以便用户可以从中选择
NSArray*numCardsInDeck;//将是下一个allCards,指示数据库中用户放入其卡片组的每个卡片的数量
NSMutableArray*cardsInDeck;//该组中的实际卡
}
@属性(读写)NSString*deckName;
@属性(读写)NSArray*所有卡;
@财产(读写)卡*impendingFortress;
@财产(读写)卡*;
@财产(读写)卡*城堡骑士;
@财产(读写)卡*Fortress Archer;
@财产(读写)卡*堡垒法师;
@财产(读写)卡*AppalOpticBeast;
-(作废)setDeckCards:(NSArray*)c;
@结束
//这是NSWindowController
//甲板结构
//卡德西姆
//
//由来宾用户于2014年4月2日创建。
//
//
#进口
#导入“deckBuilder.h”
#导入“deck.h”
@接口结构:NSWindowController
{
NSMutableArray*甲板;
NSMUTABLEARRY*numberoff;
deckBuilder*deckMaker;
}
@属性(读写)NSString*deckName;
-(void)setdeck:(NSMutableArray*)a;
@结束
//
//甲板建造商
//卡德西姆
//
//由来宾用户于2014年4月18日创建。
//
//
#进口
#导入“deck.h”
#导入“card.h”
@接口生成器:NSObject
{
甲板*新甲板;
NSArray*numCard;
}
-(甲板*)康迪克;
@结束

我也是新手,现在只使用Objective-c

Cocoa中的新TableView在每个单元格中都包含nsview表。为每个单元格添加值。您将需要将dependencry添加到它管理视图的类中

AppDelegate:< NSTableViewDataSource, NSTabViewDelegate>
AppDelegate:
记住将表链接到此类。 你需要让talbe知道它有多少行

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
    return <number of row in the data>;
}
-(NSInteger)行数表视图:(NSTableView*)表视图{
返回;
}
在实现中,您调用

- (NSView *)tableView:(NSTableView *)tableView 
   viewForTableColumn:(NSTableColumn *)tableColumn 
                  row:(NSInteger)row 
{
    NSTextField *result = [[NSTextField alloc] initWithFrame:[<your tableview> frame]];
    // Add your custom for the cell in here.
    return [result autorelease];
}
-(NSView*)表视图:(NSTableView*)表视图
viewForTableColumn:(NSTableColumn*)tableColumn
行:(NSInteger)行
{
NSTextField*结果=[[NSTextField alloc]initWithFrame:[frame]];
//在此处添加单元格的自定义设置。
返回[结果自动释放];
}
此函数将被调用并遍历表中的每个单元格。
希望有此帮助。

您能提供一个代码示例吗?
readwrite
属性设置为默认值,您应该忽略此属性。此外,您应该删除
@界面中的IVAR。。。{//ivars here}
因为Xcode会自动创建ivar并合成属性。您可以像这样直接访问IVAR:
\u name
\u attribute
\u level
等。下划线
\u
而不是
self.
- (NSView *)tableView:(NSTableView *)tableView 
   viewForTableColumn:(NSTableColumn *)tableColumn 
                  row:(NSInteger)row 
{
    NSTextField *result = [[NSTextField alloc] initWithFrame:[<your tableview> frame]];
    // Add your custom for the cell in here.
    return [result autorelease];
}