[問題] 程式碼問題 有關NSSet

看板MacDev作者 ( ′-`)時間5年前 (2019/05/01 15:14), 5年前編輯推噓2(205)
留言7則, 4人參與, 5年前最新討論串1/1
不好意思直接貼上 上色過程太麻煩可怕了 如果可以麻煩大大也直接複製貼上到編輯器跑結果 我的第二個問題是結果無法理解 #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 }? 第三個問題:為什麼印出這些元素的時候沒按照順序啊?本來就隨便排序的嗎? 以上 麻煩大大 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.168.193 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1556694862.A.48B.html ※ 編輯: dreambegins (39.9.168.193), 05/01/2019 15:16:07

05/01 15:50, 5年前 , 1F
問題一:這是Category的名稱,關於它可以
05/01 15:50, 1F

05/01 15:50, 5年前 , 2F
看這個
05/01 15:50, 2F

05/01 15:50, 5年前 , 3F
05/01 15:50, 3F

05/01 17:55, 5年前 , 4F
問題三:集合沒有順序的概念
05/01 17:55, 4F

05/02 01:41, 5年前 , 5F
2.因為intersectSet後裡面剩{3,5} 再聯集
05/02 01:41, 5F

05/02 01:41, 5年前 , 6F
就變成{12, 3, 5 ,200}
05/02 01:41, 6F

05/02 12:21, 5年前 , 7F
謝謝三位大大!!
05/02 12:21, 7F
文章代碼(AID): #1SoKTEIB (MacDev)
文章代碼(AID): #1SoKTEIB (MacDev)