在 Objective-C 类中使用时,无法在调试区域中看到 Swift 对象层次结构

2023-12-19

我的问题可能很简单,但我却迷失了方向。 任何评论、想法、帮助、预测都会非常有用。

这是我的课程

试用SwiftClass.swift

import Foundation

@objc public class TrialSwiftClass : NSObject{
    var first : String?
    var second : NSString?
    var third : NSNumber = 0


    override init(){
        super.init()
    }

    init(data:NSArray){

            self.first = data[0] as? String
            self.second = data[1] as? NSString
            self.third = data[2] as! NSNumber
    }
}

TrialObjectiveCClass.h

#import <Foundation/Foundation.h>

@interface TrialObjectiveCClass : NSObject

@property (nonatomic, strong) NSString *first;
@property (nonatomic, strong) NSString *second;
@property (nonatomic, assign) NSNumber *third;

- (instancetype)initWithArray:(NSArray *)data;

@end

TrialObjectiveCClass.m

#import "TrialObjectiveCClass.h"

@implementation TrialObjectiveCClass


- (instancetype)initWithArray:(NSArray *)data{
    self.first = data[0];
    self.second = data[1];
    self.third = data[2];

    return self;
}
@end

现在问题来了。当我在 ViewController.m 中使用这两个类时,其中包含以下代码:

#import "ViewController.h"
#import "TrialObjectiveCClass.h"
#import "Codemaster-Swift.h" //Automatically created header to use Swift code in Objective-C


@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSArray *trialArray = @[@"FirstString", @"SecondString", @99];


    //First the Swift part
    TrialSwiftClass *obj = [[TrialSwiftClass alloc] initWithData:trialArray];

    NSLog(@"%@", obj.first);
    NSLog(@"%@", obj.second);
    NSLog(@"%@", obj.third);


    //Now the Objective-C part
    TrialObjectiveCClass *obj2 = [[TrialObjectiveCClass alloc] initWithArray:trialArray];
    NSLog(@"%@", obj2.first);
    NSLog(@"%@", obj2.second);
    NSLog(@"%@", obj2.third);


}

If I put a breakpoint in the last NSLog in ViewController.m, here is what i see in debug area: enter image description here

我的日志显示了对象属性的正确值。

为什么我看不到 Swift 类的层次结构,但可以看到 Objective-C 类?如何解决这个问题呢?


Swift 类中的变量作为属性公开给 ObjC。目前,Locals 视图不显示对象的属性,仅显示其 ivar。无论该类来自 ObjC 还是 Swift,都是如此。这就是为什么 swift 变量不会出现在局部视图中的原因。

您可以通过使用 lldb 控制台中的表达式命令查看对象的属性来解决此问题。例如,在您的示例中停止,您可以执行以下操作:

(lldb) expr obj.first
(__NSCFConstantString *) $0 = 0x00000001002d1498 @"FirstString"

etc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Objective-C 类中使用时,无法在调试区域中看到 Swift 对象层次结构 的相关文章

随机推荐

  • 如何创建整数列表的二维列表并设置特定值

    如何创建一个像这样的矩阵 我不想使用numpy 0 1 2 3 4 5 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 我已经尝试过这个 这是错误的 class MinimiumEdits o
  • 我可以停止缩放时调整元素大小吗?

    我有一个标准网站 当用户放大 CTRL 时 如何防止元素调整大小 据我所知 没有办法防止用户放大时项目缩放 可能有一种方法捕获缩放事件 https stackoverflow com questions 995914 catch brows
  • UITableView 的“反弹区域”中的浅灰色背景

    Apple 的 iPhone 应用程序 例如 Music 和 Contants 使用 UITableView 中的搜索栏 当您向下滚动以使搜索栏向下移动时 滚动视图内容上方的空白区域具有浅灰色背景颜色 请参见屏幕截图 请注意 搜索栏顶部有一
  • 使用 python 在命令行上键入即可完成

    我想用 python 编写一个小型应用程序 目录 文件启动器 为了使其快速 我想自动完成 自动建议条目 但我想显示 这些建议会随着用户的输入而出现 根据我读到的有关 readline 模块完成的内容是 只能使用 完成热键 例如标签 有什么建
  • 快速处理位置权限

    我正在尝试实现一个基本的地图视图并将用户的当前位置作为注释添加到地图中 我已将 requestwheninuse 密钥添加到我的 info plist 并导入 coreLocation 在我的视图控制器的 did load 方法中 我有以下
  • 如何检查自定义模型绑定器内的属性属性

    我想强制系统中的所有日期均有效且不是将来的日期 因此我在自定义模型绑定器中强制执行它们 class DateTimeModelBinder IModelBinder public object BindModel ControllerCon
  • Eclipse 在调试模式下继续部署到设备

    在部署到我的设备一次进行调试后 每次我尝试在常规模式下 运行为 时 它仍然会附加调试器 我已从设备中删除了该应用程序 但它仍然如此 当我只想运行该应用程序而不受笔记本电脑的束缚时 这会导致并出现问题 还有其他人遇到过这个问题吗 如果是这样
  • 创建下拉按钮以根据分类列进行过滤

    我有一个像这样的数据框 import pandas as pd df pd DataFrame df category G1 G1 G1 G1 G1 G1 G1 G2 G2 G2 G2 G2 G2 G2 df date 2012 04 01
  • 如何在 Kotlin 中声明具有两种类型的变量,例如 val x:Int 或 String

    我要写一个像这样的方法 object UIBehavior fun dialog context Context title Int String message Int String val dialogObj AlertDialog B
  • R将多个url放入lapply中

    我有一个字符向量中的 url 列表 我想在 查询 因为如果不是 则 x 查询将被拒绝 urls c url1 url2 url3 这是我想做的 htmlpages lapply urls function x readLines x Sys
  • 当单元格内有文本时如何获得表格单元格的正确高度

    历史 形状大小不等于表格单元格大小并适合形状内的文本 https stackoverflow com questions 63428548 shape size not equal to the table cell size and fi
  • NuGet 不复制配置文件

    我现在尝试了很多不同的事情 但似乎都没有达到预期的效果 我想与我的库共享一个示例配置 或图像或其他 文件 有人可以使用它并从中派生 我尝试默认为只是为了这样做 我尝试通过以下方式将其包含在 nuget 包中 nuspec并通过 csproj
  • C++ 应用程序中的 QML 或反之亦然 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一个简单的 GUI 显示相当复杂的计算输出的情况 现在我想使用编写一个漂亮的自定义 GUIQML 我还想写我的后台应用程序QT C 我坐在
  • 通过互操作打开文档时如何使 word 可见?

    我想通过互操作打开一个word文档 并且word必须在该过程中可见 它看起来相当简单 因为在word文档的打开函数中有一个名为 visible 的参数 但是word在后台 什么我失踪了吗 static void Main string ar
  • .NET (C#) 中的“StandardIn 尚未重定向”错误

    我想使用标准输入做一个简单的应用程序 我想在一个程序中创建一个列表并在另一个程序中打印它 我想出了以下内容 我不知道 app2 是否有效 但是在 app1 中我收到异常 StandardIn 尚未重定向 在 writeline 上 在 fo
  • 如何修复 WordPress 自定义主题以与插件一起使用?

    这是我第一次尝试编写自定义 WordPress 主题 而且我已经快完成了 与任何事物一样 存在一些错误 但我尝试了几种不同的选项来修复它们 但没有成功 链接为 www studiosimplicit com wp 我的第一个问题是事件页面上
  • 我的对象在 Three.js 中不反射光线

    我在 Three js 场景中有一些基于 CubeGeometry 的网格 它们都反映了我在全局使用的 PointLight 但其中之一 仅用 THREE Geometry 通过代码添加顶点和面 手工 制作的 没有反映出来 即使它没有颜色
  • 使用 openssl C 进行 AES(aes-ige-128、aes-ige-192、aes-ige-256)加密/解密

    最近 我终于 在 stackoverflow 用户 WhozCraig 的帮助下 开始在 CBC 模式下使用 AES 现在 我想做完全相同的事情 但使用 AES IGE 我看了一下openssl 1 0 1e test igetest c并
  • 获取当前页面并移动到Primeng数据表中的特定页面

    我正在使用 primefaces primeNg 的数据表 我可以获取当前所在页面并以编程方式将数据表设置为特定页面吗 我看到数据表使用了分页组件 但是如何使用 ViewChild访问它 任何帮助将不胜感激
  • 在 Objective-C 类中使用时,无法在调试区域中看到 Swift 对象层次结构

    我的问题可能很简单 但我却迷失了方向 任何评论 想法 帮助 预测都会非常有用 这是我的课程 试用SwiftClass swift import Foundation objc public class TrialSwiftClass NSO