我有我的主視圖控制器顯示UITableView
。 這是每個單元格都是自定義的(我爲自定義演示文稿創建了一個UIView
)。目標c - 有些數組項不顯示在我的UITableView中(有些顯示了兩次)
爲了顯示我的tableView這些項目,我填寫的「allFilesFolderPath」文件夾中的這段代碼內容的數組:
- (void)configureView {
_itemArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:allFilesFolderPath error:nil];
}
和
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.itemArray count];
}
和創建我的定製單元用於向他們展示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
myItem = [self.itemArray objectAtIndex:row];
NSLog(@"My Item : %@", _itemArray.description);
static NSString *CellIdentifer = @"cardCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifer];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifer];
}
return cell;
}
當我用打印數組,我得到的項目,按字母順序正確的列表(就像他們是如何存儲在文件位置在我的iPhone):
My Item : (
Music,
Music10,
Music2,
Music3,
Music4,
Music5,
Music6,
Music7,
Music8,
Music9,
Photos,
Videos
)
但是,當我在iPhone上運行的應用程序(或在模擬器),單元格正確顯示(按順序),直到第八項。在這個數字之後,在我的情況下,而不是有「Music8」,「Music9」,「Photos」,「Video」我回到陣列的開頭,例如「Music」,「Music10」,「Music2」和「Music3 「
爲了更好地理解我所得到的,這裏是截圖:
我真的輸了!我搜索了(並再次搜索)我做錯了什麼,但我沒有找到任何東西,對我來說一切都是正確的。
請幫我找到我的問題,以便我可以正常睡覺。
編輯:這是我設置從我的其他類檢索myItem字符串的方法:
+ (NSString *)getItemName {
return myItem;
}
,這裏是我如何從我的其他類檢索:
NSString *test = [ViewController getItemName];
_itemName.text = test;
編輯2:這裏是用於設置我的自定義TableViewCell的代碼 (遺憾的是缺少這些信息)
#import "TableViewCell.h"
@implementation TableViewCell
- (void)awakeFromNib {
// Initialization code
[self cardSetup];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)cardSetup {
_cardView.layer.masksToBounds = NO;
_cardView.layer.shadowOffset = CGSizeMake(0, 1);
_cardView.layer.shadowRadius = 1;
_cardView.layer.shadowOpacity = 0.3;
NSString *test = [ViewController getItemName];
_itemName.text = test;
}
@end
我沒有想過用一個類來存儲數據,接下來的幾分鐘,我不認爲爲什麼它是一個乾淨的模型! 明天我會試試這個,因爲我住的地方很晚,並且讓你知道。謝謝 ! – Synny
所以,我已經建立了我的數據模型與射線wenderlich政黨成員的幫助下(https://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1 )。我已經設置了一個包含我的標題的Doc和Data類。 我已經成功創建了我的TableViewCellDoc項目,但是當我將它發送到cellForRowAtIndexPath到我的單元格對象時,我在標籤內沒有任何內容。查看我用來發送它的代碼:TableViewCellDoc * item = [self.itemArray objectAtIndex:indexPath.row]; TableViewCell * cellItem = [[TableViewCell alloc] init]; cellItem.itemName.text = item.data.title; – Synny
嗡嗡聲我發現了這個問題,它來自cellForRowAtIndexPath中的單元格的初始化。我曾經這樣做,像UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@「cardCell」];而不是TableViewCell(我的自定義類如此)** cell = [tableView dequeueReusableCellWithIdentifier:@「cardCell」] ;.我現在可以通過代理方法打印所有項目,謝謝:) – Synny