[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

閱讀全文

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

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

用FLASH編輯XML by PHP

只能夠讀入XML其實是很不夠的
GOOGLE了一下
用這個方法就可以透過PHP編輯XML

在AS中

var xmlURLReq:URLRequest = new URLRequest("/savexml.php");
xmlURLReq.data = XMLobject; //XMLobject是一個在之前讀入的XML物件
xmlURLReq.contentType = "text/xml";
xmlURLReq.method = URLRequestMethod.POST;

var xmlSendLoad:URLLoader = new URLLoader();
xmlSendLoad.load(xmlURLReq);

閱讀全文