小编Sen*_*ful的帖子

获取JavaScript中内容类型的默认文件扩展名?

如果我有内容类型,我如何获得其默认文件扩展名?

例如,给定其中一个内容类型,我应该得到以下文件扩展名:

+------------------------+----------------+
|      Content-Type      | File Extension |
+------------------------+----------------+
| text/plain             | .txt           |
| application/javascript | .js            |
| application/gzip       | .gz            |
+------------------------+----------------+
Run Code Online (Sandbox Code Playgroud)

如果无法在JavaScript中自动获取这些扩展,我的下一个解决方案是在JavaScript数组中创建内容类型和文件扩展名之间的简单关系.因此,我会接受一个答案,其中包含最常见内容类型和文件扩展名的简单表/数据库.

javascript filenames content-type

5
推荐指数
4
解决办法
8149
查看次数

模仿Apple的UIViewAnimationOptionCurveEaseInOut数学方程式?

我想创建一个动画,看起来就像Apple的CurveEaseInOut一样具有动画效果,以便我的应用程序看起来一致。问题在于该特定动画无法使用UIView动画方法。我必须在每个帧上手动操作该位置。例如,我得到一个时间T,我需要输出该点的中心C。我希望它不像Apple那样使用线性关系(例如C = T),它可以轻松地进出。

Apple在该动画选项中使用哪个曲线方程式?

我认为曲线看起来像这样:(是从这个问题得出的)

在此处输入图片说明

如果真是这样,看来我应该能够用正确的常数调整Cubic Hermite样条方程,并获得相同的结果。问题是苹果使用哪些常量?

math animation uiviewanimation ios

5
推荐指数
1
解决办法
1850
查看次数

核心数据级联删除不可靠?

每当prepareForDelete在删除原因是级联删除规则时更新模型时,NSFetchedResultsController似乎存在错误.

这似乎意味着隐式删除(通过级联删除)的行为与显式删除的行为完全不同.

这真的是一个错误,还是你能解释为什么我看到这些奇怪的结果?


设置项目

您可以跳过整个部分并下载xcodeproj.

  1. 使用Master-Detail Application模板创建一个新项目.

  2. Event实体添加新属性.(这很重要,因为我们希望能够更新属性,而不会导致NSFetchedResultsController重新排序任何项目.否则它将发送NSFetchedResultsChangeMove事件而不是NSFetchedResultsChangeUpdate事件).

  3. 调用属性hasMovedUp,然后将其设为a Boolean.(注意:创建这样的属性可能看起来很愚蠢,但这只是一个例子,我试图将其减少到重现此bug所需的最小步骤数.)

  4. 添加一个新实体,调用它EventParent.

  5. 创建与Event的关系,调用它child.做出反向关系,称之为parent.(注意:这是1:1的关系.)

  6. 单击EventParent.单击其子关系.将其删除规则设置为级联.我们的想法是,我们只会删除父对象.删除父项后,它将自动删除其子项.

  7. 将事件的父关系"删除规则" 保留Nullify.

  8. 通过Xcode为两个实体创建NSManagedObject子类.

  9. insertNewObject:创建新事件的方法中,确保创建相应的父级.

  10. Event.m文件中,自动分配的最后一个事件的hasMovedUpYES通过声明一个prepareForDeletion事件:

    NSLog(@"Prepare for deletion");
    
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"timeStamp" ascending:NO];
    [fetchRequest setSortDescriptors:@[sortDescriptor]];
    NSArray *results …
    Run Code Online (Sandbox Code Playgroud)

cascade core-data nsfetchedresultscontroller

5
推荐指数
1
解决办法
678
查看次数

从Reminders API访问深层链接信息?

iOS 9引入了一个新的提醒功能,允许您深层链接回任何应用程序(包括实现NSUserActivity API的第三方应用程序).

例如,如果您启动消息,请点按一个对话,按住主屏幕按钮,然后说出"在5分钟内提醒我这一点",您将收到一条带有消息图标的提醒.稍后在"提醒"中点击"消息"图标将直接转到该对话.

如果我使用EKReminder API,我可以收到此提醒,但是我可以获得任何其他信息吗?

换句话说,有没有办法:

  • 知道这个提醒有与之相关的特殊元数据吗?
  • 获取与之相关的深层链接?
  • 获取将处理深层链接的应用程序图标(就像Reminders应用程序一样)?

来自Apple的iOS 9页面:

在此输入图像描述

"当我上车时,请提醒我."

Siri可以提醒您在应用程序中查看的内容(如Safari,Mail和Notes),并希望稍后再进行跟进.如果您正在通过电子邮件中途,您可以说"今晚提醒我这件事."或者,如果您要查看地图中的某个地方,您希望稍后停下来,那么当您上车时可以要求提醒.

cocoa-touch reminders deep-linking eventkit ios9

5
推荐指数
0
解决办法
327
查看次数

你可以并行运行Xcuitests吗?

想知道是否有人找到了并行运行Xcuitests的方法.非常确定此功能不是内置的,但如果您可以从命令行运行特定的Xcuitest,则可以编写可以将其分布在多台计算机上的脚本.

那么子问题,你如何从命令行运行特定的Xcuitest?

我很感激,如果有人玩这个并且可以分享他们所学到的东西,或者他们有什么资源可以指出我.谢谢!

testing xcode ios ios7 xcode-ui-testing

5
推荐指数
1
解决办法
1007
查看次数

将3D Touch Quick Actions添加到Safari主屏幕快捷方式?

随着iPhone 6s的推出,3D Touch被宣布.有了这个,出现了一个名为Quick Actions的新功能.这些允许您在主屏幕上快速访问1-4个操作,只需通过3D触摸即可.

例如,地图应用提供以下4个快捷方式:

在此输入图像描述

如果用户通过Safari将我的网页添加到他们的主屏幕,是否有一个API可以指定当他们按下图标时会出现哪些快速操作?(目前当他们3D触摸图标时,它什么也没做.)

如果我的网页是apple-web-app-mobile-capable- 作为一个独立的应用程序运行 - 会让我提供快速行动怎么办?

mobile-safari ios quickaction iphone-standalone-web-app 3dtouch

5
推荐指数
0
解决办法
415
查看次数

AccessibilityIdentifier 的良好命名约定吗?- XCode 7 UI 测试 - 录音

是否有针对可访问性标识符的既定命名约定(与 Xcode UI 测试记录相关)?

我正在研究可访问性和 UI 测试。我使用了 Xcode 7 中的新记录功能。在记录 UI 操作时,我注意到:

当我有一个标有“a”的按钮并记录点击两次时,我得到以下代码:

XCUIElement *aButton = [[XCUIApplication alloc] init].buttons[@"a"];
[aButton tap];
[aButton tap];
Run Code Online (Sandbox Code Playgroud)

当我将其accessibilityIdentifier 设置为“a”并重复录制时,我得到相同的代码。

本地化标签会干扰辅助功能标识符吗?(如果在某些语言中,按钮 X 突然将“a”作为标签,而按钮 Y 将“a”作为可访问性标识符 - 这是否会产生歧义/冲突?)

我的第一个想法是为可访问性标识符设置一个唯一的前缀 - 比如“@”。所以我尝试了“@a”、“@1”等。

然而,使用“@1”记录会导致以下代码:

XCUIElement *1Button = [[XCUIApplication alloc] init].buttons[@"@1"];
[1Button tap];
[1Button tap];
Run Code Online (Sandbox Code Playgroud)

这会产生编译器错误,因为1Button不是有效的标识符。显然,可访问性标识符被添加到按钮的变量名称前面,并删除了一些字符。

使用“1”记录会导致以下代码:

XCUIElement *button = [[XCUIApplication alloc] init].buttons[@"1"];
[button tap];
[button tap];
Run Code Online (Sandbox Code Playgroud)

这引出了另一个问题:

我可以影响 Xcode 在记录期间派生变量名称的方式吗?

我知道,我可以手动进行记录和清理变量名。然而,如果可以在某个地方轻松配置它,那就太愚蠢了。

xcode ios xcode-ui-testing

5
推荐指数
0
解决办法
1679
查看次数

如何使用类似于Lister App的iOS和watchOS 2之间的共享框架设置项目?

利斯特应用是苹果的只有苹果观察样本项目之一.它首先是为支持watchOS 1而编写的,后来在2015年9月16日更新以支持watchOS 2.因此,有许多目标,组等不能一致地命名,因此很难理解是什么.

我想创建一个类似的项目,我有一个iOS和带有共享代码/框架的watchOS 2.由于Lister应用程序的复杂性,我很难理解如何设置这样的项目.

我应该如何设置项目以便在watchOS 2和iOS应用程序之间共享代码?(注意:不要求支持watchOS 1.)


作为参考,以下是Lister应用程序中的目标,方案和组的列表:

  • 目标: Lister,Lister Tests,Lister Today,Lister WatchKit Extension,Lister WatchKit App,ListerKit,ListerKit Tests,Lister Watch Extension,Lister Watch App,ListerKit(watchOS),Lister(OS X),Lister Today(OS X),ListerKit (OS X),ListerKit测试(OS X)
  • 方案: Lister,Lister Today,Lister WatchKit App,Glance - Lister WatchKit App,ListerKit,Lister Watch App,Glance - Lister Watch App,ListerKit(watchOS),Lister(OS X),Lister Today(OS X),ListerKit(OS) X)
  • 团体: Lister iOS App,Lister WatchKit App,共享Lister WatchKit代码,Lister Watch App,Lister OS X App,共享ListerKit框架代码,共享Lister资源

ios ios-frameworks apple-watch

5
推荐指数
1
解决办法
1878
查看次数

UIScrollView max和min contentOffsets?

给定一个配置了任何标准属性的UIScrollView(例如contentInset),我如何获得最小和最大contentOffset?

即当用户一直向左滚动时,contentOffset将被报告为什么?

即如果用户一直向下滚动到右下角,那么contentOffset将被报告为什么?

uiscrollview ios

5
推荐指数
1
解决办法
3448
查看次数

如何更新嵌入到 UIKit 中的 SwiftUI 视图?

我正在为 UIKit寻找 AppKit 的NSHostingView的等效,以便我可以在 UIKit 中嵌入 SwiftUI 视图。不幸的是,UIKit 没有与NSHostingView. 我们所拥有的最接近NSHostingController的等效,名为UIHostingController。由于视图控制器包含视图,我们应该能够调用适当的 UIViewController 嵌入方法,然后view直接抓取并使用它。

目前 许多 文章解释,这是方式嵌入里面的UIKit一个SwiftUI视图。但是,他们通常无法解释您将如何通过UIKit 进行交流斯威夫特用户界面。例如,假设我实现了一个用作进度条的 SwiftUI 视图,我希望定期更新进度。我希望我的旧版/UIKit 代码更新 SwiftUI 视图以显示新进度。

我发现唯一一篇接近于解释如何操作嵌入视图的内容的文章建议我们这样做@ObservedObject

import UIKit
import SwiftUI
import Combine

class CircleModel: ObservableObject {
    var didChange = PassthroughSubject<Void, Never>()

    var text: String { didSet { didChange.send() } }

    init(text: String) {
        self.text …
Run Code Online (Sandbox Code Playgroud)

uikit ios swift swiftui

5
推荐指数
1
解决办法
2412
查看次数