是否可以动态创建一个类的实例,为它们指定特定的名称(例如Friend1,Friend2等)?
我有一个带有一些实例变量的“Friends”类(例如Name和Surname)。在我的应用程序中,用户从列表中选择他想要添加的“朋友”的数量。因此,如果他选择5,UITableView将填充10个空字段(Name和Surname)。
你知道如何“动态”创建这些对象吗?
答案 0 :(得分:0)
当他选择5时,创建一个朋友阵列:
friends = [[NSMutableArray alloc] init];
for (int i = 0; i < 5; i++)
[friends addObject:[[[Friend alloc] init] autorelease]];
[tableView reload];
(其中friends
NSMutableArray在视图控制器的接口部分声明)
在UITableViewDataSource中:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == friendsSection)
return [friends count] * 2;
else ...;
}
我将-tableView:cellForRowAtIndexPath:
实施作为练习留给读者,这取决于你没有描述的太多细节。
答案 1 :(得分:0)
objc_msgSend(id theReceiver, SEL theSelector, ...)
完成的。因此,您需要一个指向theReceiver
的指针。我解释你的问题,因为“是否可以将指针与动态创建的名称关联到一个新实例。我认为这可以使用这样的字典:NSString *myIdentifier = @"anyString";
或任何其他方式来创建字符串。然后,您可以创建类的实例:MyClass *myObject = [[MyClass alloc] init];
或任何其他方式来实例化它。最终建立关联:NSDictionary *dict = @{myIdentifier: myObject};
[[dict objectForKey:myIdentifier] message]
向对象发送消息;