Saturday, September 21, 2013

Objective-C > NSArray

1. Declare a new NSMutableArray object named "username":
 NSMutableArray *username = [NSMutableArray arrayWithObjects: @"Peter",@"Mary", @"John", @"David" ,@"Susan", nil];


2. Common class method [ + ] and instance methods [ - ]:

  + array
  + arrayWithObjects
  - (NSUInteger) count
  - objectAtIndex: (NSSInteger) index
  - (void) addObject: (id) anObject
  - (void) insertObject: (id) anObject atIndex: (NSUInteger) index
  - (void) removeLastObject
  -  (void) removeObjectAtIndex: (NSUInteger) index
  - (void) removeAllObjects
  -
  -
+: Class Method: 無須實體化就可以使用的方法 (生仔用only)
-: Instance Method: 需先實體化才可以使用的方法,假設str1 已經是NSString 文字實體 (生完仔, 對仔落指令)


[+] arrayWithObjects: (NSString *) format

[-] (NSUInteger) count



[-] (NSUInteger) objectAtIndex: (NSSInteger) index



[-] (void) addObject: (id) anObject



[-] (void) insertObject: (id) anObject atIndex: (NSUInteger) index


[-] (void) removeLastObject




[-] (void) removeObjectAtIndex: (NSUInteger) index



[-] (void) removeAllObjects
<Exercises>
NSMutableArray
1a. Verify that the Foundation array classes are bounds checked:
  • Create an NSMutableArray and populate it with three NSString objects.
  • Using the method objectAtIndex:, try to retrieve an object from index -1.
1b. Try again with index 3. What happens?
  • Using the method insertObject:atIndex:, try to insert another NSString at index -1. What happens?
  • Now try to insert the new string at index 3. Explain your results.
-----------------------------------------------------------------------------------------------------------------------------
Sort an NSArray
1. Create an NSArray that holds the following strings: @"Raspberry", @"Peach", @"Banana", @"Blackberry", @"Blueberry", and @"Apple".
2. Obtain a sorted version of the array using the NSArray method sortedArrayUsingSelector:. Use the selector for the NSString method caseInsensitiveCompare: as the argument. You should read the documentation for sortedArrayUsingSelector: and caseInsensitiveCompare:
before proceeding.
3.Log the contents of the newly created sorted array.

Objective-C > NSNull

1. Throw exception:



2. NSNull Class Method - [ + ] null:
Foundation supplies the NSNull class. NSNull has only the single class method, null, which returns the null object:

* Notes: NSNull has no instance methods.
3. Build & Run:


Objective-C > NSMutableSet

1. Declare a new NSMutableSet object named "":
 NSMutableSet *favouriteFruits = [NSMutableSet setWithCapacity: 3];


2. Common class method [ + ] and instance methods [ - ]:

+: Class Method: 無須實體化就可以使用的方法 (生仔用only)
-: Instance Method: 需先實體化才可以使用的方法,假設str1 已經是NSString 文字實體 (生完仔, 對仔落指令)

[-] (void) addObject: (id) object


Notes: Despite being added twice, @"Apple" only appears in the set once.



Objective-C > NSString

1. Declare a new NSString object named "str1":

 NSString *str1 = [NSString stringWithFormat:@"iPhone Programming is easy];
2. Declare the new NSString object "str1" within "showMessage" method:

3. Build & Run:
<same result>
4. Declare the NSString object "str1" also likes this:
 NSString *str1 = @"iPhone Programming is super easy";
5. Build & Run again:
Before click, the original text of label1 is "Hello Nattoise".


After click, the text of label1 is changed to "iPhone Programming is super easy".



Common class method [ + ] and instance methods [ - ]:
  + stringWithFormat                                <-- Class Method [ + ]
  -  stringByAppendingString                    <-- Instance Method [ - ]
  - isEqualToString
  - length
  - intValue
  - floatValue
  - uppercaseString
  -
  -
  -
  -
  -
  -
  -
+: Class Method: 無須實體化就可以使用的方法 (生仔用only)
-: Instance Method: 需先實體化才可以使用的方法,假設str1 已經是NSString 文字實體 (生完仔, 對仔落指令)

[+] stringWithFormat: (NSString *) format




[-] (NSString *) stringByAppendingString: (NSString *) format


[-] (BOOL) isEqualToString: (NSString *) aString


[-] (NSUInteger) length



[-] (NSUInteger) intValue





[-] (float) floatValue




[-] (NSString *) uppercaseString







Reference: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html

Friday, September 6, 2013

[節錄] Android 4.4 為什麼要叫 KitKat?一次 Google 與雀巢的祕密合作





以下是節錄於INSIDE TW只為自學用途,如有任何版權問題,請留言或電郵給我,不便之處,敬請願諒!

Google 宣布 Android 4.4 代號是 KitKat(一款雀巢旗下的巧克力棒名稱),難道這當中沒有商標權的問題嗎?我們來看看這背後究竟發生了什麼有趣的故事。
BBC 報導,Google 和雀巢接洽最早要追溯到去年 11 月的一通電話。當時 Google 的 Android 業務發展總監 John Lagerling 打給雀巢在英國的廣告商尋求合作。第二天,Lagerling 就接到雀巢的邀請參加了一次電話會議。24 小時後,雀巢接受了 Google 的合作請求。而最終合作敲定則是在今年 2 月於巴塞隆納舉行的全球行動大會 MWC(Mobile World Congress)。根據雀巢執行副總裁 Patrice Bula 所說,其實他們在知道這個消息的一個小時內,就很愉快地決定要和 Google 合作了。

不知道蘋果的 Jony Ive 看到會做何感想?XD
雙方對這次合作都表現得很友好,也沒有牽涉到任何金錢。雀巢會在全球 19 個國家出售 5000 萬個印有 Android 機器人標誌的 KitKat,消費者還有機會贏得 Google 的平板電腦 Nexus 7 以及 Google Play 的禮品卡。為了賣關子,雙方在保密工作方面也是下足工夫。印有 Android 機器人的全新包裝在兩個月前開始生產,而在 Google 內部一直是以 Key Lime Pie 為代號,Google 的員工和其它合作夥伴都被蒙在鼓裡。此外,雀巢還專門做了 500 個 Android 機器人形狀的的 KitKat 來紀念此次合作,並宣稱是在「歐洲一個神秘的地方」花了「數週」完成的。
efb1ef1ba1caa41f08d916540eb64175
不過合作也不是完全沒有問題。雀巢在全世界都持有 KitKat 品牌,但是在美國則是將 KitKat 授權給 Hershey's 生產,如果 Google 和雀巢合作,也必須與 Hershey's 達成一定的協議。儘管消息稱,最終的合約將只有 Google 和雀巢簽訂,但其實到時在美國市面上出現的 KitKat 和新的 KitKat mini 其實是 Hershey's 生產的。
a7e2147f26ab69a6c5c20a93c9f3ae15
為什麼名字要換成 KitKat 呢?答案說出來或許有些無厘投,因為 Google 的 Android 工程主管 Hiroshi Lockheimer 是一個十足 KitKat 控。他的 Gmail 頭像在好幾年前就是 KitKat 圖示了,Android 團隊甚至曾經把他整個辦公室的門用一包包 KitKat 填滿!新包裝的 KitKat 上市後,這樣有趣的一幕看來又會重現。
編按:大家可以去 KitKat 的網站逛一下,看看把巧克力當手機展示是什麼感覺 XD
kitkat_website
 圖片來源:The Verge