小编TJe*_*Jez的帖子

Swift到Objective-C头文件不包含Swift类

我试图在Objective-C代码中使用Swift类,但是我的Swift类似乎没有出现在生成的头文件中.结果,我的构建失败了"使用未声明的标识符'HelloWorld'".

我使用模板创建了一个名为TestApp的项目.

我的目标中有以下构建设置:

  • 产品名称:TestApp
  • 产品模块名称:TestAppModule
  • 定义模块:是的

Apple的文档说要使用,#import <TestApp/TestAppModule-Swift.h>但这不起作用.

相反,我#import "TestAppModule-Swift.h"在我的".m"文件中使用.它似乎找到了这个.

我能够导航到它,它看起来像这样......

// Generated by Swift version 1.0 (swift-600.0.34.4.5)

#if defined(__has_include) && __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif

...etc...
Run Code Online (Sandbox Code Playgroud)

但没有在那里定义的类.

我在项目中有一个Swift文件,看起来像这样......

class HelloWorld {    
    func hello() {
        println("hello world")
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这不使用标准头文件位置#import <TestApp/TestAppModule-Swift.h>

如何在头文件中获取我的swift类,这样我就不会得到"未声明的标识符"错误?

objective-c swift

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

Xcode 构建报告 Swift Package Manager 包“没有这样的模块”。一次又一次的构建最终修复了它

在执行“清理构建文件夹”后尝试构建时,我收到“没有此类模块”错误。反复尝试构建最终没有错误。

重要提示:找不到的模块是使用 Swift Package Manager 的本地包,即不是从 git 下载的。我像这样指定这些依赖项:

.package(url: "file:../CoreGraphicsExtensions", from: "0.0.0")
Run Code Online (Sandbox Code Playgroud)

/UIKitExtensions/Package.swift正如我在此处列出的文件中所见:

// swift-tools-version: 5.6
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
        name: "UIKitExtensions",
        products: [
            // Products define the executables and libraries a package produces, and make them visible to other packages.
            .library(
                    name: "UIKitExtensions",
                    targets: ["UIKitExtensions"]),
        ],
        dependencies: [
            // Dependencies declare other packages that this package depends …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift-package-manager swift-package

7
推荐指数
2
解决办法
5360
查看次数

在iOS上使用Cocoa,在后台进行9切片缩放/拉伸

我想使用"9切片"缩放来拉伸图像,其中仅缩放图像的中心.完全像UIImage的stretchableImageWithLeftCapWidth方法,但我想在后台线程中这样做.据我所知,这个方法只能在gui线程中使用.

我正在开发iOS/iPad/iPhone.

有没有人有代码片段,或者知道可以执行此操作的库?我正试图不重新发明轮子!

我发现一些有用的参考资料:

CGContext文档:

关于在后台绘图的好博客条目:

使用CGContext旋转图像:

iphone cocoa-touch ipad ios

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

在 MTLComputePipelineState 上,什么决定 maxTotalThreadsPerThreadgroup?

在 iOS 或 MacOS 上使用金属着色器/计算内核时...

MTLComputePipelineState有一个限制maxTotalThreadsPerThreadgroup.

该限制可以在管道状态创建后查询。此限制取决于 GPU 硬件特性、操作系统版本和 Metal 内核代码。

  • Metal 内核代码的哪些方面影响 MTLComputePipelineState 的 maxTotalThreadsPerThreadgroup?
  • 在给定固定硬件/操作系统组合的情况下,可以采取哪些措施来增加价值?

例如:

  • 注册使用?
  • 代码长度?
  • 强制内联?

(问题不是如何计算最佳大小,而是如何修改代码以实现最大线程组。)

链接到Apple的文档MTLComputePipelineStatehttps://developer.apple.com/documentation/metal/mtlcomputepipelinestate/1414927-maxtotalthreadsperthreadgroup

链接到 Apple 文档“计算线程组和网格大小”: https: //developer.apple.com/documentation/metal/calculate_threadgroup_and_grid_sizes ?language=objc

macos shader ios metal metalkit

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

运行 iOS 模拟器时,信息和调试统一日志记录消息不会出现在控制台中

从 iOS 模拟器运行时,我在控制台应用程序中看不到调试级别或信息级别日志消息。

  • 可以使用模拟器在控制台中看到默认、错误和故障级别。
  • 我可以使用真实的非模拟设备在控制台中查看所有DebugInfo 、 Default 、 Error 和 Failure 级别。
  • 我在模拟器和真实设备中使用相同的控制台应用程序过滤器设置。

我正在使用 XCode 8.3.3 和运行 iOS 10.3 的模拟器。

我在 iOS 应用程序中使用统一日志记录系统,如下所述: https://developer.apple.com/documentation/os/logging https://developer.apple.com/videos/play/wwdc2016/721/

在模拟器上运行时如何显示这些调试级别和信息级别日志消息?

iphone xcode logging ios swift

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

目标c类的扩展报告"使用未声明的类型"

我正在尝试为"FMDatabase"写一个扩展...一个客观的c类.

extension FMDatabase {


}
Run Code Online (Sandbox Code Playgroud)

我在这个项目的其他swift代码中使用FMDatabase没有问题.但是在这个快速扩展中,它无法使用"使用未声明的类型FMDatabase"进行编译.

objective-c fmdb swift

2
推荐指数
1
解决办法
475
查看次数