2014-10-06 48 views
0

我調用了一個塊 - 具體來說,它是UIAlertView的一個塊,它提供基於按下按鈕的功能。我正在使用UIAlertView + Blocks,它可以在這裏找到:https://github.com/ryanmaxwell/UIAlertView-BlocksCocoapods更新後未調用Objective-C塊

直到我最近通過'pod install'命令刷新Cocoapods之前,所有東西都是桃色敏銳的。儘管UIAlertView + Blocks的版本沒有改變,但更新我的cocoapods包裝工作區的簡單行爲已經導致了非常奇怪的錯誤,不再爲UIAlertView +塊調用任何完成塊。

認爲它可能是一個錯誤,我嘗試了兩個用於UIAlertView完成塊的cocoapods。沒有骰子 - UIAlertView的任何完成塊都被跳過。

問題的方法:

[UIAlertView showWithTitle:@"Change Password" 
    message:@"Please enter your new password below." 
    style:UIAlertViewStyleSecureTextInput 
    cancelButtonTitle:@"Cancel" 
    otherButtonTitles:[NSArray arrayWithObjects:@"OK", nil] 
    tapBlock:^(UIAlertView *alertView, NSInteger buttonIndex) { 

    //THIS PART ISN'T BEING CALLED 
    NSLog(@"Change password, do some other stuff..."); 

    //Do other things... 

}]; 

所有其他塊等類工作的罰款。這只是與UIAlertView有關的塊已停止工作。

回答

1

兩個建議/問題。

  1. 清理您的項目以及衍生數據,再次構建。
  2. 您是否更改過運行此設備的設備/模擬器iOS版本? UIAlertView在iOS8中已棄用 - iOS8使用UIAlertController作爲UIAlertView和UIActionSheet的警報類。您使用的窗格最近一次更新是在7個月前完成的,並且針對UIAlertView而不是UIAlertController進行了編寫。
+0

清理和刪除的數據導出 - 沒有運氣。我也在iOS 7和8模擬器下嘗試了這個 - 再次沒有運氣。有趣的是,它在github上包含的示例項目中的兩個模擬器下工作正常。這是我的項目特有的。 – 2014-10-09 00:52:19

+1

您是否嘗試徹底移除豆莢並重新安裝?有時在重新安裝時項目設置可能會變得混亂。 您是否在git repo中跟蹤項目變更?如果您確實需要在安裝pod之前和之後對項目和工作區文件進行比較。更好的是,嘗試將這些更改恢復到早期版本。看起來像項目配置中的東西搞砸了。 – Kaupo 2014-10-09 07:32:34

+0

原來它與項目配置和兩個椰子樹之間的不良交互有關。最後,我必須選擇要保留的兩個中的哪一個,然後我拔出UIAlertView + Blocks cocoapod並使用另一個 - UIBAlertView,它沒有相同的衝突。我認爲選中你的答案是沒有意義的,但是我贊成你的評論,這被證明是我需要的關鍵信息! – 2014-10-12 02:01:50

0

Kaupo提供的關鍵信息 - 我檢查了我的git的差異,發現我的其他的CocoaPods之一也正在更新,兩人在一起是導致UIAlertView中委託系統上的衝突 - 這就是爲什麼塊沒有被調用。 /捂臉

最後,我通過使用不同的cocoapod我UIAlertViews解決了這個問題 - UIBAlertView

相關問題