[objective-C]原來需要做記憶體管理~

剛開始接觸Xcode跟interface builder有點既熟悉又陌生的感覺
基本上我是覺得蠻像FLEX的,只是從AS變成objective-C
同樣有物件導向的概念,但是語法上卻天差地遠…

首先我就一直不懂那個宣告中的星號是幹嘛的
有點後悔以前C沒有好好學…
後來知道原來在objective-C中幾乎不是宣告實體的物件,而是宣告指標指向物件的記憶體位置

NSString *string = [[NSString alloc] init];

這一句翻成中文應該就是說
宣告一個NSString類別名叫string的指標,指向一個被初始化成NSString類別所需要的記憶體空間的記憶體位置
其中alloc就是在配置string所需的記憶體空間

而每一個繼承NSObject的物件都會有一個retainCount來紀錄該物件被參考的次數
當retainCount值為0時,該記憶體就會被釋放掉(其實應該說他會自動執行一個dealloc的函數,把記憶體釋放掉)

在程式中我們也可以用retain來增加retainCount或用release減少retainCount值

NSString *string = [[NSString alloc] init];
 
NSLog(@”retain count = %d”, [string retainCount]); // retain count = 1
 
[string retain];
 
NSLog(@” retain count = %d”,[string retainCount]); // retain count = 2
 
[string release];
 
NSLog(@” retain count = %d”,[string retainCount]); // retain count = 1

閱讀全文

[mac]實用iCal

一直沒有好好在使用iphone跟MacBook的行事曆
但是最近要記的事情實在越來越多
還是來好好研究一下mac這一套iCal怎麼使用吧~

簡單的新增刪除和同步就不用說了
有幾個個人覺得還不錯的小技巧就筆記一下吧~

[顯示生日行事曆]
iCal>偏好設定(command+,)>一般
把「顯示生日行事曆」打勾,就會在「訂閱」中多出一個「生日」的標籤
其中就標記著在通訊錄中有標上生日的聯絡人的生日
閱讀全文

[google Analytics]在SMARTY中設置電子商務網站偵測碼

首先當然是在google Analytics中找到要設定的網站 -> 編輯 -> 編輯 ->勾選電子商務網站
然後參考GOOGLE的說明交易完成頁面設置程式碼
不過由於SMARTY是由tpl檔生成頁面
要產生有作用的javascript就需要注意一些地方
而主要就是用{literal}把php跟javascript的程式碼分開
其中$google_items是在其他PHP從DB中撈出來需要的資料
閱讀全文