2012-05-08 19 views
0

作爲MacRuby初學者,我正在通過tutorial工作,並且希望添加一個下拉表來警告用戶何時嘗試刪除從應用程序的條目。MacRuby NSBeginAlertSheet調用給出未知:[BUG]未知Objective-C immediate:0x1(無)

繼碼here,這在的OBJ-C是

- (IBAction)deleteRecord:(id)sender 
{ 
    NSString *title = @"Warning!"; 
    NSString *defaultButton = @"Delete"; 
    NSString *alternateButton = @"Don't Delete"; 
    NSString *otherButton = nil; 
    NSString *message = @"Are you sure you want to delete the selected record(s)?"; 

    if ([tableView numberOfSelectedRows] == 0) 
    return; 

    NSBeep(); 
    NSBeginAlertSheet(title, defaultButton, alternateButton, otherButton, mainWindow, self, @selector(sheetDidEnd:returnCode:contextInfo:), nil, nil, message); 
} 

我在的MacRuby:

def removeFriend(sender) 
    return if @friendsTableView.numberOfSelectedRows == 0 
    title = 'Warning!' 
    defaultButton = 'Delete' 
    alternateButton = 'Don\'t Delete' 
    otherButton = nil 
    s = @friendsTableView.numberOfSelectedRows > 1 ? 's' : '' 
    message = "Are you sure you want to delete the selected record#{s}?" 
    NSBeginAlertSheet(title, defaultButton, alternateButton, otherButton, @mainWindow, self, :'alertDidEnd:returnCode:contextInfo:', nil, nil, message) 
end 

alertDidEnd:returnCode:contextInfo

def alertDidEnd(sheet, returnCode:rCode, contextInfo:cInfo) 
    <array handling code> 
end 

在運行此我得到單擊鏈接到removeFriend的按鈕時的下拉列表ED,但隨後如果我點擊「刪除」我的應用程序崩潰,並顯示以下錯誤:

unknown: [BUG] unknown Objective-C immediate: 0x1 (nil) 

MacRuby 0.12 (ruby 1.9.2) [universal-darwin10.0, x86_64] 

(lldb) 

我做得不對的didAlertEnd方法的實現方式,或者是這其實一個錯誤?

回答