小编Dáv*_*tor的帖子

如何为我的 macOS swift 应用程序添加上下文菜单选项?

我正在创建一个类似于 dropbox 的应用程序(快速),我想创建一个选项“将文件添加到应用程序名称”并将其添加到右键菜单中。单击后,我希望打开应用程序并加载文件,以便用户决定将其保存在哪里。我广泛浏览了网络,但找不到任何其他资源来寻求帮助。仅寻求有关添加菜单选项的帮助。

macos menu swift

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

WKRefreshBackgroundTask尝试访问文件时出错bktasksnapshot_(null)

在watchOS 4.0(Xcode 9.0 beta 6)中执行后台任务时,我收到类似于下面的错误消息.它们似乎没有引起任何问题,但我不确定.有没有人知道是什么导致这些错误被记录,如果有修复或方法来抑制它们?

2017年8月24日09:03:40.130009-0400 cfanow关注应用信息[6906:377766] [bg_app_refresh] - [WKRefreshBackgroundTask cleanupStorage] _block_invoke:213:错误试图到达文件:///用户/ justindomnitz /库/开发/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E-49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空):错误域= NSCocoaErrorDomain代码= 260"无法打开文件"bktasksnapshot_(null)",因为没有这样的文件." 的UserInfo = {NSURL =文件:///用户/ justindomnitz /库/开发商/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E-49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空),NSFilePath = /用户/ justindomnitz /库/开发商/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E- 49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空),NSUnderlyingError = 0x79f3f3c0 {错误域= NSPOSIXErrorDomain代码= 2 "没有这样的文件或目录"}}

swift watchkit watchos-4

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

被宠坏的模拟器xcode 9.作为一个破碎的电视

在任何Xcode 9模拟器上几乎每次启动应用程序都会在截图中产生: 在此输入图像描述 也许有人遇到过这个问题并解决了吗?

ios ios-simulator xcode9

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

如何使用 Decodable 解码 JSON 数组?

我请求 API 向我发送一些数据,我可以成功检索这些数据,但我仍停留在它的解码过程中。这是我收到的 JSON:

[  
   {  
      "challenge_id":1,
      "challenge_title":"newchallenge1",
      "challenge_pts_earned":1000,
      "challenge_description":"description1",
      "start_date":"2017-09-24T00:00:00.000Z",
      "end_date":"2017-09-24T00:00:00.000Z",
      "challenge_category_id":1,
      "status_id":2,
      "createdAt":"2017-09-24T17:21:47.000Z",
      "updatedAt":"2017-09-24T09:40:34.000Z"
   },
   {  
      "challenge_id":2,
      "challenge_title":"challenge1",
      "challenge_pts_earned":100,
      "challenge_description":"description1",
      "start_date":"2017-09-24T00:00:00.000Z",
      "end_date":"2017-09-24T00:00:00.000Z",
      "challenge_category_id":1,
      "status_id":0,
      "createdAt":"2017-09-24T17:22:12.000Z",
      "updatedAt":"2017-09-24T09:22:12.000Z"
   },
   {  
      "challenge_id":3,
      "challenge_title":"new eat title",
      "challenge_pts_earned":600000,
      "challenge_description":"haha",
      "start_date":"2017-01-09T00:00:00.000Z",
      "end_date":"2017-01-10T00:00:00.000Z",
      "challenge_category_id":2,
      "status_id":0,
      "createdAt":"2017-09-27T17:12:10.000Z",
      "updatedAt":"2017-09-27T09:15:19.000Z"
   }
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建以下结构来对其进行解码:

   struct challenge : Codable {
    let  id : String?
    let  title : String?
    let  pointsEarned : String?
    let  description : String?
    let  dayStarted : String?
    let  dayEnded : String?
    let  categoryID : String?
    let  statusID …
Run Code Online (Sandbox Code Playgroud)

json swift codable

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

Xcode 在抛出 fatalError 时崩溃

static func saveContext (context: NSManagedObjectContext = getContext()) {        
    if context.hasChanges {        
        do {
            try context.save()
        } catch let nserror as NSError {      
            fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(我把它放在保存 CoreData 上下文上)

当我抛出 fatalError 时,Xcode 本身每次都会崩溃,我必须再次打开它。

也许有人知道如何解决它或什么?

xcode core-data swift

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

在文件夹引用模式下添加文件时,Xcode找不到头文件

我正在尝试使用文件夹引用模式将许多 Objective-C 文件添加到我的 Swift 项目中,这意味着当我将文件拖放到项目中时,我选择“创建文件夹引用”。

这是因为我所有的 obj-c 文件都使用#include "/folder/folder/folder/"example. 这些文件是用j2objc生成的项目生成的。

现在我的问题是当我想要#import或Xcode 中的#include某些.h文件myproject-Bridging-Header.h找不到头文件时。我用#import "/folder/folder/folder/"类似生成的文件,但没有机会。

$(PROJECT_DIR)/在构建设置 - 搜索标头路径中添加,但它确实需要完全像$(PROJECT_DIR)/folder/folder/folder/. 有什么方法可以设置主文件夹和 Xcode 查找子文件夹吗?或者我需要单独写每个路径?

objective-c swift j2objc

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

如何检测 Apple Watch 屏幕截图事件/数字表冠 + 侧边按钮按下?

例如,当用户同时按下数字表冠和侧面按钮(又名截屏)时,本机锻炼应用程序和 Sportstracker 能够暂停锻炼。

我需要这样的东西,但我在文档或网上其他地方找不到任何有关它的信息。对于 iOS,有“notificationUIApplicationUserDidTakeScreenshot”,但这在 watchOS 上不起作用。

有人知道怎么做吗?它是公开可用的还是私有 API?是我看起来不够好吗?

screenshot ios swift watchkit

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

UIVideoEditorController委托方法被调用两次

我正在使用UIVideoEditorController,但是成功委托方法为我调用了两次。但是,所有传递的对象的所有指针都告诉它发送完全相同的数据。

let editor = UIVideoEditorController()
editor.videoMaximumDuration = 10.0
editor.videoQuality = .typeIFrame1280x720
editor.delegate = self
editor.videoPath = // some path goes here
self.present(editor, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

然后,以下方法将“ here”打印两次。

func videoEditorController(_ editor: UIVideoEditorController, didSaveEditedVideoToPath editedVideoPath: String) {
    print("here")
    self.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

ios uivideoeditorcontroller swift

5
推荐指数
2
解决办法
479
查看次数

如何约束协议类型的参数以符合Swift 4中的AnyObject?

以一个非常接近在下面看一下:

// Note that this protocol can only be applied to reference types.
protocol Ref: class {
  var zibbles: Int { get set }
}

class Reference: Ref {
  var zibbles: Int = 42
}

// Note very carefully that we are NOT passing an
// instance, but a type itself.
func thwip<T: AnyObject>(into target: T.Type) {

}

// This compiles.
thwip(into: Reference.self)

// This fails to compile.
thwip(into: Ref.self) 
Run Code Online (Sandbox Code Playgroud)

无论情况多么罕见,这是语言应该能够完成的事情.编译器知道Ref必须符合的任何实例AnyObject,因此类型约束thwip应该可以工作,但事实并非如此.

请注意,如果我们 …

swift swift-protocols

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

应用程序中可用的框架依赖项的类型扩展

好...这很难解释(也很难给它起一个标题),但是我会尽力而为。

我们在使用Carthage导入东西时首先发现了这一点,但是在Xcode中设置了一个示例项目(不使用Carthage),似乎已经做了同样的事情。

首先,这是我们设置的示例项目的屏幕截图...

在此处输入图片说明

该有一个目标Test20000,它有一个依赖一个

框架于是具有的依赖关系

重要

Test20000应用程序不会作为直接依赖关系。

框架

B中有一个类似...的结构

import Foundation

public struct BType {
    public let value = "Hello, B!"
}
Run Code Online (Sandbox Code Playgroud)

A中有一个类似...的文件

import Foundation
import B

public struct AType {
    public let value = "Hello, A!"

    public func doAThing() {
        print(BType().value)
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程式

现在,在Test20000应用程序中,我们执行类似...

import Foundation
import A

struct TestType {
    func doSomething() {
        let aType = AType() …
Run Code Online (Sandbox Code Playgroud)

frameworks swift

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