OK,所以我在這裏再次面臨可怕的message sent to deallocated instance
...調試「的消息發送到釋放實例」
- 我使用DMTabBar(基本上是一個Xcode樣TabBar控件)
- ARC是啓用
現在,這裏的交易:
- 伴隨控制的示例工作正常
- 我已經啓用殭屍(甚至嘗試使用儀器,調試雖然 - 說實話 - 我不知道要尋找什麼)
- 的
deallocated
實例是tabBarItems
TabBar數組(託管不同按鈕的數組)。
這是我添加的項目:
NSMutableArray* sidebarItems = [@[
[DMTabBarItem tabBarItemWithIcon:[NSImage templateImageNamed:@"One" withSize:iconSize] tag:0 tooltip:@"Files"],
[DMTabBarItem tabBarItemWithIcon:[NSImage templateImageNamed:@"Two" withSize:iconSize] tag:1 tooltip:@"Explorer"],
[DMTabBarItem tabBarItemWithIcon:[NSImage templateImageNamed:@"Three" withSize:iconSize] tag:2 tooltip:@"Bookmarks"],
[DMTabBarItem tabBarItemWithIcon:[NSImage templateImageNamed:@"Four" withSize:iconSize] tag:3 tooltip:@"Search"]
] mutableCopy];
[sidebarTabs setTabBarItems:items];
// Handle selection events
[sidebarTabs handleTabBarItemSelection:^(DMTabBarItemSelectionType selectionType, DMTabBarItem *targetTabBarItem, NSUInteger targetTabBarItemIndex) {
if (selectionType == DMTabBarItemSelectionType_WillSelect) {
[sidebarTabView selectTabViewItem:[sidebarTabView.tabViewItems objectAtIndex:targetTabBarItemIndex]];
} else if (selectionType == DMTabBarItemSelectionType_DidSelect) {
}
}];
這是不同的元素是如何宣稱:
@interface myAppl : NSWindowController
{
IBOutlet DMTabBar* sidebarTabs;
IBOutlet NSTabView* sidebarTabView;
}
這是DMTabBar
的接口(最「重要」部分):
@interface DMTabBar : NSView {
}
// set an NSArray of DMTabBarItem elements to populate the DMTabBar
@property (nonatomic,strong) NSArray* tabBarItems;
// change selected item by passing a DMTabBarItem object (ignored if selectedTabBarItem is not contained inside tabBarItems)
@property (nonatomic,assign) DMTabBarItem* selectedTabBarItem;
能否請您給我解釋一下它是什麼,我做錯了嗎?我絕對不與內存管理(是的,我承認我有些學做),但我絕對會殺了我自己在這一個大師...
我設置tabBarItems
他們似乎在那裏(至少在起初)。他們爲什麼被釋放? (記住控制和項目代碼都使用ARC)。
任何想法? (請讓我知道如果你需要知道別的...)
Ewwwww,伊娃IBOutlets!這是什麼,ObjC 1.0? – CodaFi 2013-02-26 06:51:50
@CodaFi最初他們被宣佈爲屬性,但我非常絕望,我一直在嘗試每一個可能的組合...... – 2013-02-26 06:55:33
有可能你可能有線程問題嗎? UIKit和線程絲毫不同意。 – CodaFi 2013-02-26 08:14:35