不好意思直接贴上 上色过程太麻烦可怕了
如果可以麻烦大大也直接复制贴上到编辑器跑结果
我的第二个问题是结果无法理解
#import <Foundation/Foundation.h>
// Create an integer object
#define INTOBJ(v) [NSNumber numberWithInteger: v]
// Add a print method to NSSet with the Printing category
@interface NSSet (Printing)<=====我想问的第一个问题,括号这个是什么?
-(void) print;
@end
@implementation NSSet (Printing)
-(void) print {
printf ("{ ");
for (NSNumber *element in self)
printf (" %li ", (long) [element integerValue]);
printf ("} \n"); }
@end
int main (int argc, char * argv[]) {
@autoreleasepool {
NSMutableSet *set1 = [NSMutableSet setWithObjects:
INTOBJ(1), INTOBJ(3), INTOBJ(5), INTOBJ(10), nil];
NSSet *set2 = [NSSet setWithObjects:
INTOBJ(-5), INTOBJ(100), INTOBJ(3), INTOBJ(5), nil];
NSSet *set3 = [NSSet setWithObjects: INTOBJ(12), INTOBJ(200), INTOBJ(3), nil];
NSLog(@"set1: ");
[set1 print];<=====我想问的第三个问题
NSLog(@"set2: ");
[set2 print];
// Equality test
if ([set1 isEqualToSet: set2] == YES)
NSLog (@"set1 equals set2");
else
NSLog (@"set1 is not equal to set2");
// Membership test
if ([set1 containsObject: INTOBJ(10)] == YES)
NSLog (@"set1 contains 10");
else
NSLog (@"set1 does not contain 10");
if ([set2 containsObject: INTOBJ(10)] == YES)
NSLog (@"set2 contains 10");
else
NSLog (@"set2 does not contain 10");
// add and remove objects from mutable set set1
[set1 addObject: INTOBJ(4)];
[set1 removeObject: INTOBJ(10)];
NSLog (@"set1 after adding 4 and removing 10: ");
[set1 print];
// get intersection of two sets
[set1 intersectSet: set2];
NSLog (@"set1 intersect set2: ");
[set1 print];
// union of two sets
[set1 unionSet:set3];
NSLog (@"set1 union set3: ");
[set1 print]; <=====我想问的第二个问题
}
return 0;
}
这本书是精通Obj C...作者提供的讨论区已经404 not found了...QQ 所以上来求救
第一个问题:(printing) 的写法是什么意思?书本上根本就没交代清楚
第二个问题:书上写的结果是
set1 union set3:
{ 12 3 5 200 }
我觉得很奇怪,union的数学意义不是联集吗?为什么结果不是{ 1 3 4 5 12 200 }?
第三个问题:为什么印出这些元素的时候没按照顺序啊?本来就随便排序的吗?
以上 麻烦大大 谢谢!