我有以下代码来处理pull to refresh响应
let copyData = data.reversed() // it is pull to refresh response (load page 1)
for (_,element) in copyData.enumerated() {
let foundElement = allObjects.filter{$0.id == element.id} // Find element in main array
if let firstElement = foundElement.first, let index = allObjects.index(of: firstElement) {
allObjects[index] = element // Replace if found
} else {
allObjects.insert(element, at: 0) // Insert if not found
}
}
self.arrayPosts = allObjects
Run Code Online (Sandbox Code Playgroud)
哪里data是可编码类,这是拉刷新的API响应.allObjects是预装数据与分页
问题:假设allObjects我有50个对象(5个10页的ID是(1到50))用户拉动刷新我从API加载第一页(ID 1,2,3,4,5,6,7,10, 11)那么如何识别哪个对象被删除(8,9) …
问题:在具有播放器的collectionview单元中
如果我同时播放两个视频,并寻找第一个视频结束,然后AVPlayerItemDidPlayToEndTime触发两次,则两个视频都重新开始
在集合视图单元格中
override func awakeFromNib() {
NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player?.currentItem, queue: .main, using: {[weak self] (notification) in
if self?.player != nil {
self?.player?.seek(to: kCMTimeZero)
self?.player?.play()
}
})
}
Run Code Online (Sandbox Code Playgroud)
和一个播放按钮动作来播放视频。
在单元格中,我要寻找滑块。
任何帮助,将不胜感激
我已经看过
对我来说它不起作用..
我在下面创建类的项目中工作
protocol FileManagerHelper {
var fileName:String {get}
var fileCategory:FileCategory {get set}
var isFileExitsAtPath:Bool {get}
var filePath:String {get}
var fileType:FileTypes {get set}
}
class FileManager:FileManagerHelper {
// Other property
//STORED PROPERY INIT WHEN OBJECT WILL CREATED WITH FileCategory OBJECT
var fileCategory:FileCategory {
didSet {
switch fileCategory {
case .XYZ:
print("Test")
... other cases
}
}
required init(fileCategory:FileCategory,fileType:FileTypes = .Image) {
self.fileCategory = fileCategory
self.path = self.folderPath + self.fileName
}
}
Run Code Online (Sandbox Code Playgroud)
没有设置方法没有调用 fileCategory
注意:我不想给出默认值,我想从init方法中传递它运行时 …
我在故事板中有视图控制器,只有地图视图。
class MapVC: UIViewController {
class func viewController () -> MapVC {
let storyboard = UIStoryboard(name: "Dashboard", bundle: nil)
return storyboard.instantiateViewController(withIdentifier: "MapVC") as! MapVC
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
我有简单的登录屏幕
在登录按钮操作时,我调用此方法
private func addChildVC (_ vc:UIViewController) {
self.removeAllChild()
self.addChild(vc)
vc.view.frame = self.view.bounds
self.view.addSubview(vc.view)
vc.didMove(toParent: self)
self.currentCenterViewController = vc
}
Run Code Online (Sandbox Code Playgroud)
和
MapVC.viewController()
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃
vc.view.frame = self.view.bounds
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我像附加调试器一样调试,当我按下登录应用程序时没有崩溃,但是当调试器未在启动时附加,然后我在模拟器中启动应用程序然后附加进程,当我按下登录按钮时应用程序崩溃
当前视图控制器也无法正常工作导致应用程序崩溃
如果我从故事板应用程序中删除 Mapview 在这两种情况下都可以正常工作
当我检查vc.isViewLoaded返回时false
试过 loadViewIfRequired() 清理派生数据,清理项目重启 xcode。验证我是否添加了正确的标识符
我无法理解原因 请帮助
编辑
示例应用程序
https://drive.google.com/open?id=1-otaZhhhDEH4p29CgQP7xZSX9tizceq8
重现步骤
1) 在 ios …
不工作:
NSString *strNoteDate = @"4/21/2016 11:55:25 AM";
NSDateFormatter * noteDateFormatter = [[NSDateFormatter alloc ] init];
[noteDateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss a"];
[noteDateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
NSDate *noteDate;
noteDate= [noteDateFormatter dateFromString:strNoteDate];
Run Code Online (Sandbox Code Playgroud)
得到noteDate = nil
请帮我