标签: xcode9

PHCachingImageManager.requestImage 总是被调用两次?

我有一个UICollectionView自定义UICollectionViewCell,它应该从UIImageView单元格中的每个照片中获取并显示缩略图(低质量)照片(通常用户可以选择 1 张以上的照片)。

我一直在玩PHImageRequestOptions和它们的属性,阅读它们。我什至nil作为requestImage(for: PHAsset)方法的参数传递了这一点,因为我不确定我错在哪里。

问题是该requestImage(for: PHAsset)方法被调用了两次。我需要第一次调用它只是在每个集合视图单元格中设置图像质量低(缩略图图像),一旦全尺寸图像准备好,它应该被添加到一个名为assetsTurnedIntoImages. 问题是我做错了,我总是得到两次调用ifelse方法,所以基本上,如果我从相机胶卷中选择了 4 张图像(因此,我在资产数组中有 4 张图像)以及何时通过 requestImage(for: asset) 方法我得到 8 个图像assetsTurnedIntoImages而不是 4 个。所以这是我的代码

 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
    {
        print("Assets count is:", assets.count)
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PhotoPostCVCell", for: indexPath) as! PhotoPostCVCell
        if let takenImage = cameraPhotoUIImage
        {
            cell.cellImage.image = takenImage
        }
        if assets.count > 0
        {
            let …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionviewcell swift phasset xcode9

4
推荐指数
2
解决办法
1753
查看次数

在 XCode 9 中启动模拟器(非无头)

我正在尝试使用以下方式运行我的unitui测试xcodebuild

$ xcodebuild -scheme "MyAppScheme" -destination 'platform=iOS Simulator,name=iPhone 7 Plus,OS=11.0' build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
Run Code Online (Sandbox Code Playgroud)

问题是模拟器没有启动,而是漫不经心地运行。

我知道 XCode 9 中引入的所谓“无头模拟器”。关于如何使用xcodebuild模拟器运行测试和启动模拟器的任何想法?

xcode ios ios11 xcode9

4
推荐指数
1
解决办法
909
查看次数

如何防止我的 macOS 应用程序同时运行多个实例?

我有一个应用程序,允许用户使用启动器应用程序通过首选项启用“登录时打开”(请参阅​​ https://en.atjason.com/Cocoa/SwiftCocoa_Auto%20Launch%20at%20Login.html)。但是,当我选中该框以启用它时,启动器应用程序将打开我的应用程序的另一个实例。

macos user-interface xcode xcode9

4
推荐指数
1
解决办法
2371
查看次数

无法在 Swift 4 上的 XCUITest 中设置设备方向

我一直在成功运行测试,直到 Xcode 8。在将 Xcode 更新到 9 和 9.0.1 并升级到 swift 4 之后,问题一个接一个地出现。

现在代码编译并启动应用程序(最终)但是在设置模拟器方向应用程序时崩溃并出现以下错误。

捕获的 nsinternalinconsistencyexception 活动在其范围完成后无法使用

这就是我设置方向的方式

 XCUIDevice.shared.orientation = .portrait
Run Code Online (Sandbox Code Playgroud)

orientation swift4 xcode9 xcuitest

4
推荐指数
1
解决办法
962
查看次数

Xcode 9 故事板窗口位置自动保存

我在 Xcode 9(使用 SceneKit 技术的 macOS 游戏)中启动了新项目。我被故事情节包含NSWindowControllerNSWindow和相关GameViewControllerSCNView。项目运行良好(旋转飞机)。

现在在情节提要中,我将 Autosave 值设置为“MainWindow” NSWindow,运行项目,调整窗口大小,然后退出。我知道在退出窗口位置设置自动保存将使用 保存NSUserDefaults,所以我检查终端:

$ defaults read com.koati.Bloks                                           ?
{
    "NSWindow Frame MainWindow" = "415 228 450 322 0 0 1280 777 ";
}
Run Code Online (Sandbox Code Playgroud)

这是预期的行为。现在我再次运行项目,但我看到窗口位置没有恢复。如果在情节提要中删除GameViewController关系,则位置会被正确保存和恢复,所以我想这会GameViewController以某种方式影响窗口大小和位置。在带有 XIB 的旧 Xcode 中没有这样的问题。

编辑:经过一些测试后,我现在认为它与 SceneKit 完全无关,因为替换SCNViewNSViewinNSViewController会产生相同的结果。所以我认为问题是NSViewController通过 Storyboard 附加到NSWindow内容会影响窗口位置和大小。

也许有人知道如何解决这个问题?

macos cocoa storyboard xcode9

4
推荐指数
1
解决办法
1354
查看次数

如何将自定义文件模板放置在顶部?

使用 Xcode 9。

我创建了几个自定义文件模板。

创建新文件时,对话框底部会显示我的自定义模板。

我怎样才能让它们显示在顶部?

xcode file-templates xcode9

4
推荐指数
1
解决办法
452
查看次数

如何在 swift 4 中添加虚线折线?

我已经在 Swift4 中有一条折线,如何将它的样式设置为虚线/虚线?

  let   path = GMSMutablePath(path: GMSPath())
    for marker in markerList {
        bounds = bounds.includingCoordinate(marker.position)
        path.add(marker.position)

    }



    let polyline = GMSPolyline(path: path)
    polyline.strokeColor = UIColor(named: "Primary")!
    polyline.strokeWidth = 3.0
    polyline.geodesic = true
    polyline.map = mapView
Run Code Online (Sandbox Code Playgroud)

喜欢这张地图

ios swift swift3 xcode8 xcode9

4
推荐指数
1
解决办法
1102
查看次数

通过 Interface Builder 使 NSTableView 列可排序

我有一个 NSTableView,我想使用 Interface Builder 方法对其进行排序,但我在 Apple 的指南和示例代码描述中遇到了问题。根据对原始问题的评论,我认为这个文档已经过时了,并且指向了错误的方向,所以我正在重写我的问题。

鉴于对默认 Cocoa 应用程序模板的以下添加:

class Foo: NSObject {

    @objc dynamic var name : String
    @objc dynamic var colour : String

    override init() {
        name = "name"
        colour = "colour"

        super.init()
    }

    init(_ name : String, _ colour : String) {
        self.name = name
        self.colour = colour

        super.init()
    }
}
class ViewController: NSViewController {

    @objc dynamic var fooList : [Foo] = [Foo("Bar", "Red"),
                                         Foo("Baz", "Green"),
                                         Foo("Beelzebub", "Blue")]

}
Run Code Online (Sandbox Code Playgroud)

我已经添加的NSArrayController,并NSTableview在该视图控制器 …

nstableview swift4 xcode9

4
推荐指数
1
解决办法
792
查看次数

Swift Apple Mach-O链接器错误

我将我的项目从swift 3转换为swift 4并使用最新版本的xcode 9.在构建时,我收到以下错误:

Undefined symbols for architecture arm64: "__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP", referenced from: __T06SpotMi8CameraVCC12capturePhotoyypF in CameraVC.o "__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0SaySo8NSNumberCGfg", referenced from: __T06SpotMi8CameraVCC12capturePhotoyypF in CameraVC.o ld: symbol(s) not found for architecture arm64 我没有线索.任何帮助都感激不尽.

干杯!

mach-o ios swift3 swift4 xcode9

3
推荐指数
1
解决办法
557
查看次数

Xcode无法识别新的测试功能

我刚刚开始编写单元测试,我遇到了一个问题.到目前为止,我已经在谷歌和stackoverflow上挖掘了不同的博客,但我无法解决这个问题.

每次我编写一个要测试的功能时,运行按钮(形状像钻石)都不会出现.显示的唯一运行按钮是Xcode在您创建新的单元测试目标时创建的默认函数.

这是问题的一个例子.

Xcode截图

它可能是一个错误还是我错过了什么?

xcode swift xcode9

3
推荐指数
1
解决办法
829
查看次数