小编Ram*_*mis的帖子

在Xcode 8中哪里有symbolicatecrash?

在Xcode 8中哪里有symbolicatecrash工具?

在Xcode 7中它曾经在这里:

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
Run Code Online (Sandbox Code Playgroud)

xcode symbolicatecrash xcode8

7
推荐指数
1
解决办法
5141
查看次数

forceBridgeFromObjectiveC中的内存泄漏

内存泄漏使用接口构建器和Xcode自动生成的代码.

重现步骤:

  1. 在故事板中为UIViewControler添加了8个UIButtons.
  2. 使用IBOutlet集合将所有UIButtons连接到Swfit源文件.
  3. 使用Instruments - > Leaks执行应用程序
  4. 生成了80字节的内存泄漏.

此内存泄漏的负责框架是:静态Array._forceBridgeFromObjectiveC(NSArray,结果:inout [A]?) - >().

我怎么能修复forceBridgeFromObjectiveC内存泄漏?

Xcode:7.2.1 iOS:9.2.1

xcode memory-leaks interface-builder ios swift

6
推荐指数
0
解决办法
207
查看次数

备份恢复后,SecItemCopyMatching返回-26276

  1. KeychainTouchID应用程序是使用Xcode安装并执行的.通过按" 添加受保护的密钥 " 生成密钥,按" 使用受保护的密钥 "即可使用密钥.密钥是使用Secure Enclave生成的.
  2. 计算机上的加密iPhone备份是使用iTunes制作的.删除的所有内容和设置(设置 - >常规 - >重置 - >删除所有内容和设置).
  3. 加密的iPhone备份已恢复到同一iPhone.
  4. 需要重新安装KeychainTouchID应用程序,因为它是使用Xcode进行的.
  5. KeychainTouchID应用程序已执行.
  6. 那之后:

按"使用受保护的密钥"返回-26276(AAPLKeychainTestsViewController.m @ 288函数 - > SecItemCopyMatching)

通过按"删除受保护的密钥"重新加速-4(AAPLKeychainTestsViewController.m @ 326功能 - > SecItemDelete)

按"添加受保护的密钥"返回成功,但无法删除和使用.


我在这里找到:errSecInternal = - 26276,/*安全框架中发生内部错误.*/

所以在这种情况下我无法访问新添加的密钥.

  • 为什么在备份恢复后SecItemCopyMatching返回-26276?
  • 为什么不能删除此密钥,但是可以添加?
  • 剂量sombody有这种经历吗?
  • 解决这个问题的方法是什么?

我确实将这个问题发布给了Apple团队,但是超过1个月没有答案.

security objective-c keychain ios swift

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

如何修复C风格的语句?

对于下面发布的代码,修复C-style for语句的正确方法是什么?

目前我正在接受这场交战:

不推荐使用C-style for语句,将在未来的Swift版本中删除

var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
if getifaddrs(&ifaddr) == 0 {
    // Warning
    for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) {
        // Do some stuff...
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift swift2

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

如何用Codable类型定义变量?

我想用Codable类型创建变量.然后在JSONEncoder类中使用它.我认为下面的代码应该可以正常工作,但它给了我错误:

无法encode使用类型的参数列表调用(Codable).

如何声明JSONEncoder将无错的可编码变量?

struct Me: Codable {
    let id: Int
    let name: String
}

var codable: Codable? // It must be generic type, but not Me.

codable = Me(id: 1, name: "Kobra")

let data = try? JSONEncoder().encode(codable!)
Run Code Online (Sandbox Code Playgroud)

以下是如何使用函数传递Codable的类似问题.但我正在寻找如何使用变量(类变量)设置Codable.

json swift swift-protocols swift4

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

如何使用 SwiftUI 显示准确的星级?

我需要使用 SwiftUI 显示准确的星级,如 3.1、4.8。

想要的结果应该是这样的:

在此处输入图片说明

swift swiftui

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

altool 命令行应该使用哪个密码?

尝试执行altool命令,但失败,密码不正确:

xcrun altool --list-apps -u user@domain.com -p PASSWORD
Run Code Online (Sandbox Code Playgroud)
  • 我确实尝试过使用我的用户名密码。
  • 我确实尝试使用 @keychain 功能失败,它失败是因为找不到钥匙串项。我确实遵循了这个指示。它失败并显示以下消息:错误:无法读取旧钥匙串项目

xcode ios xcode-bots xcode-server-bots

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

如何使用 JSONDecoder 解码自定义 JSON 值

后端返回位置的自定义 JSON 值。如示例所示:

{
    "location": (54.000000, 21.000000)
}
Run Code Online (Sandbox Code Playgroud)

为了解析 JSON,我使用以下代码:

let json = """
{
    "location": (54.000000, 21.000000)
}
"""    
struct Location: Codable {
    var latitude: Double
    var longitude: Double
}
let dataJson = json.data(using: .utf8)!
let location = try? JSONDecoder().decode(Location.self, from: dataJson)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 JSONDecoder 创建 Location 对象时,出现错误:给定的数据不是有效的 JSON。

dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 18." UserInfo={NSDebugDescription=Invalid value around character 18.})))
Run Code Online (Sandbox Code Playgroud)

我知道它不是有效的 JSON。重写哪些方法可以解析无效的 JSON 值?

swift4 jsondecoder

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

如何在 SwiftUI 中实现自定义回调操作?类似于 onAppear 功能

我有带有两个按钮的自定义ActionView : CarBike。当点击这些按钮时,我需要在MainView修改器中触发onCarTap / onBikeTap 。

我当前的实现是错误的:

  • 传递给不带参数的调用的参数
  • 元组类型“Void”的值没有成员“onBikeTap”

源代码:

struct ActionView: View {
    // Callback for button taps
    var onCarTap: (() -> Void)?
    var onBikeTap: (() -> Void)?
    
    var body: some View {
        HStack {
            Button(action: {
                onCarTap?()
            }, label: {
                Text("Car")
            })
            Button(action: {
                onBikeTap?()
            }, label: {
                Text("Bike")
            })
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样的解决方案:

struct MainView: View {
    var body: some View {
        ActionView()
            .onCarTap({})
            .onBikeTap({ })
    }
}
Run Code Online (Sandbox Code Playgroud)

可以这样实现:

    ActionView(onCarTap: …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

3
推荐指数
2
解决办法
4324
查看次数

当发布者失败类型不相等时如何使用CombineLates?

我有两个函数返回具有不同失败类型的AnyPublisher : NeverError。在JointLates中使用这些函数时,编译失败并出现错误:Generic struct 'CombineLatest' require the types 'Error' and 'Never' be equal

永不失败的功能:

func foo() -> AnyPublisher<Int, Never> {
    Result<Int, Never>
        .success(1).publisher
        .eraseToAnyPublisher()
}
Run Code Online (Sandbox Code Playgroud)

有时会失败的功能:

func boo() -> AnyPublisher<Int, Error> {
    Result<Int, Error>
        .failure(NSError(domain: "d", code: -1))
        .publisher.eraseToAnyPublisher()
}
Run Code Online (Sandbox Code Playgroud)

foo 和 boo 函数用法:

Publishers.CombineLatest(foo(), boo())
Run Code Online (Sandbox Code Playgroud)

生成错误:

Generic struct 'CombineLatest' requires the types 'Error' and 'Never' be equivalent
Run Code Online (Sandbox Code Playgroud)

当发布者的失败类型不相等时如何使用CombineLates?

swift combine

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

如何在没有 PKToolPicker 的情况下使用 PKCanvasView 功能?

我想在没有PKToolPicker 的情况下使用PKCanvasView功能。一旦我将PKToolPicker可见性设置为 false PKCanvasView就会引起注意。

隐藏PKToolPicker并使用PKCanvasView的方法是什么?

这是我正在使用的代码:

struct DrawingView: View {
    private var canvasView = PKCanvasView()

    var body: some View {
        MyCanvas(canvasView: canvasView)
    }
}

struct MyCanvas: UIViewRepresentable {
    var canvasView: PKCanvasView
    let picker = PKToolPicker.init()

    func makeUIView(context: Context) -> PKCanvasView {
        self.canvasView.tool = PKInkingTool(.marker, color: .black, width: 1)
        self.canvasView.becomeFirstResponder()
        return canvasView
    }

    func updateUIView(_ uiView: PKCanvasView, context: Context) {
        picker.addObserver(canvasView)
        picker.setVisible(true, forFirstResponder: uiView)
        DispatchQueue.main.async {
            uiView.becomeFirstResponder()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

swift swiftui pktoolpicker pkcanvasview

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