我猜你有兩個Calculate
類的實例。你可能在NIB中實例化了一個,這就是你連接網點的方式。然後你可能會使用類似[[Calculate alloc] init]
的代碼來實例化另一個代碼。這是一個不同的對象。因爲它不是來自NIB的,它的網點沒有連接任何東西。
你想有一個實例。如果它確實需要連接到NIB的東西,那麼它通常需要在NIB中。 (筆尖可以有一些代理對象,如文件的所有者,這是不在NIB實例但你可以將它們連接起來的東西和筆尖被加載時,這些連接將連接到真正的對象。)
如果你還需要一種方法來引用NIB中的實例,那麼你需要一個來自其他東西的插座,可能是你的應用程序委託。
更新:
確定。所以,你在NIB中有一個Calculate對象。這是一個真正的「凍幹」物體。當NIB被加載時,該對象被重構並且它的連接被建立。
你也可以單獨通過做一些類似[[Calculate alloc] init]
的實例化代碼中的Calculate
對象,對吧?這是創建一個單獨的對象。這不是NIB中的那個,你在NIB中建立的連接不會影響它。所以,它的summaryLabel
實例變量只是nil
。
你需要選擇實例化對象的一種方式,並堅持下去:
選項1)你堅持在筆尖Calculate
對象。因此,請在您的代碼中刪除您分配的部分並初始化一個新部分。相反,只需引用在加載NIB時創建的現有對象。你需要一個參考。因此,在您的應用程序委託上創建一個指向它的連接並將其連接到NIB。
選項2)您堅持使用您在代碼中創建的Calculate
對象。所以,從你的NIB中刪除一個。您在代碼中創建的對象沒有與標籤的連接,因爲它不是來自NIB。因此,您必須在代碼中設置與標籤的連接,就像您在代碼中創建的那樣。您需要參考標籤。您可以爲應用程序代理添加插座並將其連接到標籤。然後,您的應用程序代理可以執行calculateObject.summaryLabel = summaryLabel;
以告知Calculate
對象它已創建關於標籤的對象。
您是否嘗試記錄標籤?你能提供更多的代碼嗎? –
在實現中你試圖設置值的地方,代碼在哪裏? – lukecampbell
@JohannesLumpe我記錄了標籤ID,它返回null – Cristian