2012-07-01 68 views
0

我正在運行一個ARC項目,並且我注意到一些讓我的項目搞亂的東西。 在下面的代碼塊,Objective C(iphone)變量內部變量方法調用

- (void)didTapSuggestionButton:(id)sender { 
//[_buttonDelegate suggestionButtonPressed:[sender currentTitle]]; 
//NSLog(@"current title is %@",[sender currentTitle]); 
} 

在上我看到在調試控制檯下面第一行中的破發點。

自freeFormAutoCompleteScroller * const的0x0000ace9

的UIScrollView UIScrollView的

suggestionButtons的NSMutableArray * 0x6e65006e

_buttonDelegate objc_object * 0x00646564

ISA objc_class * 0x00000008

發件人ID 0x06d7f 3f0 [0] ID


然而在第二行我看到:

自freeFormAutoCompleteScroller * const的0x06d7f3f0

的UIScrollView的UIScrollView suggestionButtons的NSMutableArray * 00000000

_buttonDelegate objc_object * 0x00000000

ISA objc_class *發件人ID 0x06babf30 [0] ID


「自我」 開始引用另一個內存地址?即使我什麼都沒做?這是怎麼回事?

回答

0

這可能是因爲代碼被另一個線程同時調用,請檢查調用堆棧。

+0

它似乎沒有要,如果我不小心覆蓋在每個頂部按鈕其他,我會看到在同一時間調用2次或更多次的方法?或者他們會立即替換對方,所以我不知道? – coolio

+0

哇我覺得你可能指出了一些重要的東西,讓我看看它更多 – coolio

+0

嗯我不認爲這就是它...這是荒謬的 – coolio

0

你不應該寫

NSLog(@"current title is %@",[sender currentTitle]); 

+0

是的,我的錯誤 – coolio

0

coolio

第一次轉儲中的許多值都是未初始化的。例如:

self freeFormAutoCompleteScroller *const 0x0000ace9 

self永遠不會奇怪。

這是一種非常罕見的地址一類對象:

isa objc_class * 0x00000008 

我懷疑你是有點不retain荷蘭國際集團是按下按鈕的target的對象。換句話說,你正試圖執行隨機存儲器。你的問題不在於這種方法。

安德魯

0

如果它是由一個UIButton稱爲嘗試修改(ID)發送到「(UIButton的*)發件人」