当我添加一个今日扩展我的应用程序突然增加了很多...所以我做了一个快速检查,看看脂肪来自哪里.看起来.apex是13MB,'Assets.car'文件甚至比我的主应用程序(+ 8MB)还要大.问题是,我在扩展程序中的资产目录中只使用了1个图像.
我在Xcode中检查过,我的主要应用程序资产目录没有被切换为使用扩展名复制,但听起来确实如此.
这是正常的吗?你知道怎么做才能减少最终的.apex尺寸吗?
谢谢!
我正在开发一个今天的扩展,它在模拟器上工作正常,但是当我在设备上运行我的应用程序时它不起作用.应用程序工作正常但扩展它没有显示,所以我可以添加它与其他扩展下拉(如它不存在).有人可以告诉我我做错了什么.
谢谢
我有一个已发布的应用程序,它使用核心数据.
现在我想添加对手表套件和今天扩展的支持.
我需要将核心数据移动到共享容器中,而不会丢失以前用户保存的数据,我该如何以最佳方式执行此操作?
我正在使用Xcode 8.0,Swift 3.
我今天正在制作显示文字和图片的扩展程序,但经常导致此消息,今天扩展程序不起作用.很少工作.
程序以退出代码结束:0
我在领域保存数据,今天使用数据扩展(字符串,图像)
它是否会导致内存限制?所以,我怎么能贬低关于今天扩展的记忆?
我的扩展代码:
class Information: Object {
dynamic var Name = ""
dynamic var Image : NSData?
override class func primaryKey() -> String {
return "Name"
}
}
class TodayViewController: UIViewController, NCWidgetProviding {
var realm : Realm?
var results : Results<Information>?
var index = 0
@IBOutlet var NameLabel: UILabel!
@IBOutlet var ImageView: UIImageView!
@IBAction func leftAction(_ sender: UIButton) {
guard index == 0 else {
index -= 1
loadData(index: index)
return
}
}
@IBAction func …Run Code Online (Sandbox Code Playgroud) 我在今天为我的应用程序创建的今日小部件中观察到一个非常奇怪的关于Autolayout的行为.试图找到问题的根源我最终创建了一个简单的新Xcode项目(单视图应用程序),并添加了一个今日扩展作为新目标 - 甚至没有触及它.
当我在我的设备(iPhone 6s)上启动Today Extension时,首先发生的是在控制台中抛出布局约束冲突:
2016-05-03 18:17:22.216 TodayExtension[10183:4611907] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<_UILayoutSupportConstraint:0x15c665320 V:[_UILayoutGuide:0x15c6657b0(0)]>",
"<_UILayoutSupportConstraint:0x15c663890 V:|-(0)-[_UILayoutGuide:0x15c6657b0] (Names: '|':UIView:0x15c6642a0 )>",
"<_UILayoutSupportConstraint:0x15c666010 V:[_UILayoutGuide:0x15c666380(0)]>",
"<_UILayoutSupportConstraint:0x15c666ed0 _UILayoutGuide:0x15c666380.bottom == UIView:0x15c6642a0.bottom>",
"<NSLayoutConstraint:0x15c666b80 V:[_UILayoutGuide:0x15c6657b0]-(NSSpace(8))-[UILabel:0x15c6617c0'Hello World']>", …Run Code Online (Sandbox Code Playgroud) 当我只使用一个今天的小部件时,它非常简单,就像这样:
现在我在我的应用程序中添加了第二个今天的小部件,它是这样的:
为什么它消失了?怎么了?不应该有两个今天的小部件?我可以决定哪个小部件应该首选吗?
Apple说:
为快速操作列表选择一个小部件.如果您的应用有多个小部件,请选择一个以显示在有人使用3D Touch对主屏幕上的应用图标施加压力时出现的快速操作菜单中.
但是在哪里这样做?是用户还是开发者网站?
我有一个带有今日扩展/小部件的应用程序。这个小部件有一个 CBCentralManager 来扫描外围设备并连接到它们。扫描仪工作正常,但有时连接到设备可以工作,有时会卡在连接上。我的蓝牙设备上的 LED 灯短暂亮起,所以我看到存在某种通信。
相同的代码在应用程序本身中运行得非常好,只是不是来自小部件。
当我在 iOS 9 设备上运行小部件时,它也能正常工作!从 iOS 10 上的今天扩展连接到蓝牙设备是否有任何已知问题?
谢谢斯蒂芬
我有一个在主机应用程序和今天扩展之间共享的NSManagedObject调用Event。(在 Target Membership 中,主应用程序和小部件都被选中)。
宿主应用程序和小部件具有相同的应用程序组标识符并共享Data Model(在目标会员中,主应用程序和小部件都被选中)。
当我在 Xcode 中启动(运行)小部件时,它会显示Event已保存在主机应用程序中的所有应用程序事件 ( )。但是,当我添加新事件时,它会出现在主机应用程序中,但不会出现在今天的小部件中。如果我重新启动小部件,则会显示所有事件,包括之前未显示的最后一个事件。
这是获取事件的方法。它是在TodayViewController小部件中定义的。
private func fetchEvents(date: Date) {
let predicates = NSCompoundPredicate(andPredicateWithSubpredicates: [
NSPredicate(format: "date = %@",Date().startOfDay as CVarArg),
NSPredicate(format: "startTime >= %@", Date() as CVarArg)
])
if let ev = try? TPEvent.fetchAll(predicates: predicates, in: persistentManager.context) {
events = ev
}
}
Run Code Online (Sandbox Code Playgroud)
此事件在viewWillAppear和 中调用widgetPerformUpdate。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
fetchEvents(date: Date())
self.tableView.reloadData()
}
func widgetPerformUpdate(completionHandler: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的 ios 应用程序制作今天的扩展。今天的扩展将根据与核心数据一起保存的数据显示“下一个”课程。我一直在做一些研究,我知道我必须与 appGroup 共享我的persistentContainer。所以我做了 :
public extension NSPersistentContainer {
func addToAppGroup(id: String) {
guard let fileContainer = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: id) else {
fatalError("Shared file container could not be created.")
}
let storeURL = fileContainer.appendingPathComponent("\(self.name).sqlite")
let storeDescription = NSPersistentStoreDescription(url: storeURL)
self.persistentStoreDescriptions.append(storeDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的核心数据堆栈中:
internal class CoreDataContainer {
static var persistentContainer: NSPersistentContainer = {
let container = NSPersistentCloudKitContainer(name: "SchoolCompanion")
container.addToAppGroup(id: "group.com.Ce-dricLoneux.School-Companion")
container.loadPersistentStores(completionHandler: { (_, error) in
if let error = error as NSError? {
fatalError("Unresolved error …Run Code Online (Sandbox Code Playgroud) 我使用的是 Xcode 12.1 12A7403,当我转到 时Editor > Add Target,使用 Storyboards 创建“Today Extensions”的选项不再存在,而是只有使用 SwiftUI 创建“Widget Extensions”的选项。
有没有办法在此版本的 Xcode 中创建“Today Extensions”?我仍然希望我的扩展能够与 iOS 13 兼容。
today-extension ×10
ios ×9
swift ×4
xcode ×4
core-data ×3
widget ×2
autolayout ×1
bluetooth ×1
iphone ×1
objective-c ×1
swift3 ×1
watchkit ×1
xcode8 ×1