我想检查文件是否存在并根据结果设置按钮,但我每次都从函数 getAudiofileName 获得 nil 值。这是设计此功能的更好方法。我怎样才能以一种好的方式做到这一点。我在这部分苦苦挣扎。谁能指出我出了什么问题。
NSString *audioFile = [self getAudiofileName:indexPath.row];
NSLog(@"audiofile=%@",audioFile); // Getting nil everty time
if (!audioFile) {
[SoundsCell.customBtn setImage:[UIImage imageNamed"down.png"] forState:UIControlStateNormal];
[playBtn setEnabled:NO];
} else {
[SoundsCell.customBtn setImage:[UIImage imageNamed"listen.png"] forState:UIControlStateNormal];
[playBtn setEnabled:YES];
}
[SoundsCell.customBtn addTarget:self actionselector(getconnection forControlEvents:UIControlEventTouchUpInside];
SoundsCell.selectionStyle = UITableViewCellSelectionStyleNone;
[delegate.delArrAlbumDetailCell addObject:SoundsCell];
return SoundsCell;
}
- (NSString *)getAudiofileNameint)IndexRow{
NSLog(@"delegate.SoundsArr %d",[delegate.SoundsArr count]);
selectedClip = [delegate.SoundsArr objectAtIndex:IndexRow];
NSString *toendstring;
NSString *temp = [NSString stringWithFormat"%@.mp3", selectedClip.clip_name];
NSLog(@"temp = %@", temp );
NSLog(@"temp = %@", selectedClip.clip_url );
if (temp != nil)
{
toendstring = temp;
NSLog(@"toendString =%@", toendstring);
}
NSString *audioFilePath = [NSString stringWithFormat"%@/%@",self.dataPath,toendstring];
NSLog(@"playing audioFilePath =%@", audioFilePath);
NSFileManager *filmanager = [NSFileManager defaultManager];
if([filmanager fileExistsAtPath:audioFilePath])
{
return toendstring;
}
else
{
return nil;
}
}
提前致谢
Best Answer-推荐答案 strong>
一般评论:
- 使用
IBOutlet 而不是遍历 nib 顶级对象 - 它更简单。
- 学会区分类名、实例名和常量(这也适用于 Apple 程序员)。
- 正如上一张海报所说,不要为“NotExist”返回字符串;返回
nil
getAudioFileName: 中的 temp 永远不会有零长度(尽管它可能是 nil )
- Java 风格的附件名称透露了太多关于程序员的信息
- 当初始化一个单元格时,你可以把所有在重用时不会改变的东西放在
if (cell == nil) block 中;或者更好的是,在 Nib 中进行。
现在答案。重复使用时单元格可以是任何状态,因此您需要设置下载和播放,例如:
if (!audioFile) {
[SoundsCell.customBtn setImage:[UIImage imageNamed"DOWNLOAD.png"] forState:UIControlStateNormal];
[playBtn setEnabled:NO];
} else {
[SoundsCell.customBtn setImage:[UIImage imageNamed"LAY.png"] forState:UIControlStateNormal];
[playBtn setEnabled:YES];
}
您可能需要更改操作。
关于ios - 检查文件是否存在于路径中并根据结果设置按钮,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8062273/
|