将 NSMutableSet 转换为 NSSet
Converting NSMutableSet to NSSet
有没有办法把 NSMutableSet 转换成 NSSet?我尝试了几种方法:移动到 NSArray 和 setWithArray;使用 NSMutableSet 的内容实例化一个 NSSet。程序编译但出现 运行 时间错误。
NSMutableArray *temp = [[NSMutableArray alloc] init];
NSMutableSet *num1 = [[NSMutableSet alloc] init];
NSArray *num2 = [[NSArray alloc] init];
NSSet *num3 = [[NSSet alloc] init];
num1 = [checkset mutableCopy]; //checkset is of type NSSet
num2 = [NSArray arrayWithArray:NoShows];
num3 = [NSSet setWithArray:num2];
[num1 minusSet:num3];
-(NSSet *)ContainsNoShow:(NSMutableArray *)checkset
{
NSSet *newcheckset = [[NSSet alloc] init];
newcheckset = [NSSet setWithArray:NoShows];
NSMutableSet *checksetM = [NSMutableSet setWithArray:checkset];
[checksetM minusSet: newcheckset];
return checksetM;
}
copy
of NSMutableSet
returns NSSet
在您的示例中:
NSSet *immutableSet = [checksetM copy]; // returns immutable copy
有没有办法把 NSMutableSet 转换成 NSSet?我尝试了几种方法:移动到 NSArray 和 setWithArray;使用 NSMutableSet 的内容实例化一个 NSSet。程序编译但出现 运行 时间错误。
NSMutableArray *temp = [[NSMutableArray alloc] init];
NSMutableSet *num1 = [[NSMutableSet alloc] init];
NSArray *num2 = [[NSArray alloc] init];
NSSet *num3 = [[NSSet alloc] init];
num1 = [checkset mutableCopy]; //checkset is of type NSSet
num2 = [NSArray arrayWithArray:NoShows];
num3 = [NSSet setWithArray:num2];
[num1 minusSet:num3];
-(NSSet *)ContainsNoShow:(NSMutableArray *)checkset
{
NSSet *newcheckset = [[NSSet alloc] init];
newcheckset = [NSSet setWithArray:NoShows];
NSMutableSet *checksetM = [NSMutableSet setWithArray:checkset];
[checksetM minusSet: newcheckset];
return checksetM;
}
copy
of NSMutableSet
returns NSSet
在您的示例中:
NSSet *immutableSet = [checksetM copy]; // returns immutable copy