我知道這很簡單,這就是爲什麼我一直在試圖自己想出來,但我在我的繩索結束。可可:從一個單獨的類獲取方法的返回值
當用戶點擊一個按鈕的操作是應該做到這一點:
- (IBAction)startAction:(id)sender {
MyClass *anInstance = [[MyClass alloc] init];
NSLog(@"the name is:%@", [anInstance name]);
正如你可以看到,MyClass的有「名」的方法,它是這樣的:
- (NSString *)name {
return [nameInput stringValue];
NSLog(@"stringValue = %@", [nameInput stringValue]);
nameInput是用戶填充名稱的文本字段,按下按鈕調用「startAction」,該方法應在另一個類中調用「name」,該類應從文本字段返回字符串值並創建日誌。
實際發生的事情是,當按下開始時,日誌會顯示「名稱是:(空)」。而第二個日誌甚至沒有出現。我認爲這是因爲「名稱」方法沒有被調用。但我不知道爲什麼。我應該指定,他們是在不同的班級,我宣佈這樣的「名」的方法:
- (NSString*)name;
編輯:經過我身邊多一點嘴硬發現,當「名」的方法會從它自己的類中調用,日誌正確顯示了文本字段中的內容。我在「name」方法中加入了一個額外的日誌,並且我可以看到它被從另一個類中調用,但是它返回的值仍然爲(null),這意味着在調用之後發生了阻止從獲取文本字段字符串的類。
編輯:我不知道這是否重要,但其中一個類是NSObject的子類,另一個是NSViewController的子類。
如果您需要更多信息,請告知我。 感謝您的幫助。
修復順序現在使它們都出現,但它們仍然只顯示(空),即使再次鏈接它之後 – Elbimio