沒想到在2008年竟然能看見Apple IIc開箱照,能從1988年5月5日完整保存至今,實在太神奇了。eBay才真的是什麼都有、什麼都賣、什麼都不奇怪。
目前分類:mac (6)
- Feb 05 Tue 2008 09:02
Apple IIc開箱照
- Sep 27 Thu 2007 20:50
Key-Value Coding
NSObject提供兩個method:
- (id)valueForKey:(NSString *)attrName - (void)setValue:(id)newValue forKey:(NSString *)attrName
我們可以透過這兩個method存取物件中的變數,它們會優先使用變數的accessor method,當accessor method不存在時,才直接存取變數。假設有隻貓:
@interface Cat : NSObject { NSString* name; } - (NSString*)name; - (void)setName:(NSString*)aName; @end
我們可以這麼用:
[cat setValue:@"Cocoa" forKey:@"name"]; NSString* catName = [cat valudForKey:@"name"];
傳給setValue的值如果是nil,會呼叫NSObject的
- (void)setNilValueForKey:(NSString *)s
setNilValueForKey預設會產生exception,我們可以在子類別修改其行為。
- Sep 27 Thu 2007 20:49
Mac編程小筆記
- Objective-C識別字皆前置@字符
- id是指標,可以指向任何物件
- BOOL其實是char,用YES代表1,NO代表0
- IBOutlet是給Interface Builder看的,沒別的意思
- IBAction是給Interface Builder看的,與void是同樣的東西
- nil和NULL是同樣的東西,一般將nil用於物件指標
- 送給nil的任何通知都會被忽略
- 不能把nil放進NSArray,要用[NSNull null]代替
- 儲存在nib檔的物件被重新賦予生命之後,每個物件都會收到awakeFromNib通知
- #import類似#include,#import會確保檔案只被引入一次
- 把數字當物件傳遞時可以用[[NSNumber alloc] initWithInt:(1234)]
- 用alloc建立物件時,retain count為1,呼叫retain會將retain count加1,呼叫release會將retain count減1,retain count為0時,物件會被釋放
- 物件的dealloc會在retain count為0時被呼叫
- 呼叫autorelease會將物件放進autorelease pool,在event loop結束時被釋放
- 從alloc、new、copy或mutableCopy取得的物件,retain count為1,且不在autorelease pool中
- 從其它函式取得的物件,retain count為1,且在autorelease pool中,要呼叫retain才能保留物件下次再用,否則會在event loop結束時被釋放
- init中要記得先[super init],dealloc中要記得在最後[super dealloc]
- NSLog(@"%@")顯示的物件資訊是由(NSString*)description提供
- 用NSWindow的initialFirstResponder指定預設輸入焦點
- 編譯取取得selector:SEL selector = @selector(message:)
- 程式執行時從字串取得selector:SEL selector = NSSelectorFromString(@"message:")
- [object message:arg]會被編譯器換成objc_msgSend(object, @selector(message:), arg)
- 可以用(BOOL)respondsToSelector:(SEL)aSelector檢查物件的method是否存在
- Aug 23 Thu 2007 20:45
臺灣Apple Store線上購物開幕
自8月23日至8 月27日止,每天一本MacBook和24片iPod nano,趕快試手氣去!有了Apple Store,買Mac終於可以BTO了,買iPod送人也可以加上雷射雕刻。以後敗家就更方便了! *嘆*
- Apr 29 Sun 2007 20:41
OS X和Windows Vista存取共享目錄
於Windows Vista執行secpol.msc,到安全性設定/本機原則/安全性選項,開啟網路安全性: LAN Manager驗證層級,將設定改成傳送LM和NTLM - 如有交涉,使用NTLMv2工作階段安全性。
- Apr 04 Wed 2007 20:38
關閉Spotlight
mdutil -i off /Volume mdutil -E /Volume rm -rf /Volumn/.Spotlight*