0

我有 2 个按钮:button1 和 button2。我想为每个触摸的相应按钮创建一个 NSSet,并希望在触摸按钮 2 时显示 set1 值,反之亦然。按下按钮 1 时仅打印设置 1,按下按钮 2 时仅打印设置 2。如何保留在 button1 操作中创建的集合,以便在按下按钮 2 时显示/使用它。看看我的简单代码

在实施中,我有:

- (IBAction)button1:(UIButton *)sender {

    //somecode

    selectionButton1 = [[NSMutableArray alloc ] initWithObjects:@0,@1,@1,@4,@6,@11, nil];

    NSMutableSet *set1 = [NSMutableSet setWithArray: selectionButton1];
    NSLog(@"selectionButton1  = %@", set1);
    NSLog(@"selectionButton2  = %@", set2);
}


- (IBAction)button2:(UIButton *) sender {

    //somecode

    selectionButton2 = [[NSMutableArray alloc ] initWithObjects:@0,@5,@6,@7,@8,@10, nil];
    NSMutableSet *set2 = [NSMutableSet setWithArray: selectionButton2];
    NSLog(@"selectionButton1  = %@", set1);
    NSLog(@"selectionButton2  = %@", set2);
}
4

1 回答 1

1

为您的集合制作属性。如果您不需要从其他类访问它们,请在 .m 文件的私有类扩展中将它们设置为内部属性。然后使用self.propertyName访问属性:

我的班级.m:

@interface MyClass // Declares a private class extension

@property (strong, nonatomic) NSMutableSet *set1;
@property (strong, nonatomic) NSMutableSet *set2

@end

@implementation MyClass

- (IBAction)button1:(UIButton *)sender {

    //somecode

    selectionButton1 = [[NSMutableArray alloc ] initWithObjects:@0,@1,@1,@4,@6,@11, nil];

    self.set1 = [NSMutableSet setWithArray: selectionButton1];
    NSLog(@"selectionButton1  = %@", self.set1);
    NSLog(@"selectionButton2  = %@", self.set2);
}


- (IBAction)button2:(UIButton *) sender {

    //somecode

    selectionButton2 = [[NSMutableArray alloc ] initWithObjects:@0,@5,@6,@7,@8,@10, nil];
    self.set2 = [NSMutableSet setWithArray: selectionButton2];
    NSLog(@"selectionButton1  = %@", self.set1);
    NSLog(@"selectionButton2  = %@", self.set2);
}

@end

有关属性的更多信息,请参阅Apple 的文档

于 2014-09-13T03:59:22.190 回答