将字符串从 Swift 传递到 objective C 的问题

Issue passing a string from Swift to objective C

这是MyObjCClass.h中用户名的声明:

@property (nonatomic, assign, readwrite) NSString* username;

这就是我在 MyViewController.swift 中影响它的方式:

// MyObjCObject.username = NSString(string: "homerSimpson") // not accepted by xCode : 'NSString' is not implicitly convertible to 'String'; did you mean to use 'as' to explicitly convert ?
MyObjCObject.username = "homerSimpson"

这就是我在 MyObjCClass.m 中使用属性的方式:

NSLog(_username) // running error happens here

错误:

ECX_BAD_ACCESS : (code=1, address=0x0)

您不想使用 assign 作为指向对象的指针。您需要将 assign 更改为 strongweak(或者完全忽略它,我认为默认为 strong),具体取决于您想要的内存管理类型对于对象。

此外,这不是您要使用的方式 NSLog。你需要更像这样使用它:

NSLog(@"%@", _username);