我有一个可以成功将文件移动到共享应用程序组中的功能,但删除该文件的功能似乎不起作用。如果我打印出 fullpath2 变量,它似乎是正确的位置,但文件不会被删除,也不会返回错误。
这是我的功能:
func getSharedFilePath(appGroup:String,sharedFilename:String)->URL? {
if let directoryPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: appGroup) {
return directoryPath.appendingPathComponent(sharedFilename)
} else {
return nil
}
}
public func deleteFromSharedFile(sharedFilename: String, fileExtension: String)->String {
let sharedFilename = "\(sharedFilename).\(fileExtension)"
guard let url = getSharedFilePath(appGroup:applicationGroup,sharedFilename:sharedFilename) else {
return("Error getting shared file path")
}
// read file from file system to data variable
let fileManager = FileManager.default
do {
try fileManager.removeItem(atPath: (url.path))
return("File Removed")
}
catch let error as NSError {
return("File Remove Failed - \(error)")
} …Run Code Online (Sandbox Code Playgroud) 我支持少数使用 AirWatch MDM 分发的企业 iOS 应用程序。最初,前几个应用程序都共享相同的通配符配置文件。
我们最近推出了一系列使用无法使用通配符配置文件的应用程序组功能的应用程序,因此每个应用程序都创建了自己的配置文件。
由于配置文件即将过期,我们在使用这些新应用程序时遇到了一些问题。尝试通过 AirWatch 分发新配置文件没有成功,唯一对我们有用的是部署新的应用程序更新。我担心这种方法不是真正可持续的,因为其中一些应用程序可能不会在配置文件更新后的一两年内更新。
从 Airwatch/MDM 咨询的角度,我有几个问题:
如果可能,让企业格式的每个应用程序都有自己的配置文件或共享配置文件是最佳做法吗?
是否可以远程分发具有功能的配置文件?
当证书过期时,是否有办法修复应用程序而不使用过期证书更新整个企业的每个应用程序?
我能否在不影响内部发布的应用程序到期日期之前撤销用于内部发布的应用程序的活动证书?
从证书管理的角度来看,我们应该创建一个带有通用登录名的共享 Apple ID 还是将其绑定到一个特定的开发人员?
我们现在的应用程序很少,但每次这些到期日期一到,它就会成为一个支持问题,我觉得必须有更好的方法让企业管理拥有数百个内部应用程序的应用程序。
我有一个 tableView 显示在我的故事板和预览中,但是当我在我的设备上运行它时它没有显示。调试时,我意识到问题似乎是它从不运行 cellForRowAt indexPath 函数。为什么这段代码不执行该函数,我希望它输出 2 行。
编辑:numberOfRowsInSection 被调用并为 data.count 返回 2
这是我的 ViewController 代码:
import UIKit
class WRViewController: PopupViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var wrNo: UILabel!
@IBOutlet weak var tableView: UITableView!
struct Contact {
var name:String
var type:String
var phone:String
}
var data:[Contact]=[Contact]()
override func viewDidLoad() {
super.viewDidLoad()
data.append(Contact(name:"John Doe",type:"Builder",phone:"1234567890"))
data.append(Contact(name:"Jane Doe",type:"Contractor",phone:"0987654321"))
tableView.delegate = self
tableView.dataSource = self
tableView.reloadData()
}
override func prepareToOpen() {
super.prepareToOpen()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func …Run Code Online (Sandbox Code Playgroud)