设置多个对象

时间:2012-07-09 11:29:39

标签: iphone objective-c

我正在努力寻找下面显示的代码的速记版本。基本上我将事件保存到核心数据中。每个活动最多有15个联系人。 newEvent来自Event类。

下面的代码效果很好,但我不希望每个联系人重复15次。有更简单的方法吗?

if ([[selectedContacts objectAtIndex:14] objectAtIndex:0] != (id)[NSNull null]) {
    newEvent.contact15 = [[selectedContacts objectAtIndex:14] objectAtIndex:0];
}
else {
    newEvent.contact15 = @"";
}

2 个答案:

答案 0 :(得分:4)

您可以使用此代码

-(void) Solve{
    for (int i = 0 ; i < 15 ; i++){
        Contact *con = [newEvent.contacts objectAtIndex:14 - i];
        if ([[selectedContacts objectAtIndex:14 - i] objectAtIndex:0] != (id)[NSNull null]) {
            con = [[selectedContacts objectAtIndex:14 - i] objectAtIndex:0];
        }
        else {
            con = @"";
        }
    }
}

您应该在contact课程中将newEvent定义为Array

答案 1 :(得分:0)

您可以使用NSSelectorFromString[NSString stringWithFormat:@"setContact%d", 15]转换为SEL值,然后使用performSelector。但ARC不会那样。

您可以使用此语句#define C宏,然后将其调用15次并立即#undef。它会短得多,但并不漂亮。

但最好的方法是重新设计类,使其具有单个contacts数组。