2014-03-13 24 views
-1

我努力讓我的數組打印正確的數據。NSMutableArray不能打印正確的數據 - iOS/Objective C

我已經將它鏈接到一個按鈕,因此它獲取文本字段數據並將其添加到具有名爲PhoneBookEntry的包含firstName的子類的Person類,然後將其添加到稱爲條目的NSMutableArray。這裏的按鈕代碼:

PhonebookEntry *person = [[PhonebookEntry alloc] init]; 

self.firstName.text = person.firstName; 

[self.entries addObject:person]; 


NSLog(@"%@", self.entries); 

這裏就是我的一切初始化開始:

@interface ViewController() 

@property (nonatomic, strong) PhonebookEntry *person; 
@property (nonatomic, strong) NSMutableArray *entries; 

@end 
在我viewDidLoad中

,這是創建的NSArray的代碼。

self.entries = [NSMutableArray arrayWithCapacity:1]; 

我已經測試過,並且在正常添加和打印等時正常工作,而不是數組。

感謝

輸出

test, 
test2, 
"<PhonebookEntry: 0x8c69770>" 
+1

當您打印數據時,您期待它顯示什麼? –

+0

我想讓它顯示我輸入文本框的任何東西,例如 。蒂莫西 – Javanoob33

回答

2

它正確打印。

其實你想從你的代碼或Objective-C獲得更多的東西。

爲此,您需要覆蓋PhonebookEntry中的說明,以打破NSLog可以打印的級別。 NSLog無法打印person對象值。

-(NSString *)description{ 
    return [NSString stringWithFormat:@"%@ , %@", self.firstName, self.lastName]; 
} 
+0

我不知道你是什麼意思,你可以舉個例子?謝謝 – Javanoob33

+0

我在說,如果你做'NSLog(@「%@」,self.entries);'它不會打印,因爲你想看到。在你的PhonebookEntry類中實現上面的方法。那麼你會看到相當好的結果。注意:我只使用firstName和lastName,可以根據PhonebookEntry模型及其屬性更改字符串。 –

+0

非常感謝您的幫助,它現在正在工作。 – Javanoob33

2

self.firstName.text = person.firstName;應該是周圍的其他方式,所以改成這樣:

person.firstName = self.firstName.text; 
+0

我改變了這一點,我得到了同樣的結果。 我已將其更改爲addObject:person.firstName。它工作正常,但我需要能夠將所有的數據添加到數組(名字,姓氏和電話號碼),因爲我將通過索引編輯和刪除等)任何其他想法? – Javanoob33

+0

好,我給了一個答案,說覆蓋'description'方法,通過忽略代碼。你的眼睛很好趕上這個問題:) –

+1

看看@ AnoopVaidya的答案也結合我的 – Levi