如何从 Swift class 访问 Objective-C NSMutableDictionary?
How to access an Objective-C NSMutableDictionary from a Swift class?
我有一个名为 linkedinlogincontroller
的 Objective-C 控制器。在该控制器中,我有一个名为 result
的 NSMutableDictionary
。
简单地说,我只需要知道在 Swift 控制器中访问该词典的最佳实践方法是什么?
您应该可以像 swift 词典一样使用它。要访问其中的元素:
linkedinlogincontroller.result[key]
应该可以正常工作。
看看这个link:
Using Objective C & Swift together.
在 <YourProjectName>-Bridging-Header.h
中公开 ObjectiveC class。
#import "linkedinlogincontroller.h"
目标 C Header
// linkedinlogincontroller.h
#import <UIKit/UIKit.h>
@interface linkedinlogincontroller : UIViewController
@property (nonatomic, strong) NSMutableDictionary * result;
@end
ObjectiveC 实现
// linkedinlogincontroller.m
#import "linkedinlogincontroller.h"
#import "<YourProjectName>-Swift.h"
@implementation linkedinlogincontroller
...
self.result = [NSMutableDictionary dictionaryWithDictionary:@{@"key":@"value"}];
NSLog(@"Print from Objc %@", self.result);
YourSwiftClass * so = [[YourSwiftClass alloc] init];
[so printFromSwift:self];
...
Swift 实施
// YourSwiftClass.swift
import Foundation
@objc class YourSwiftClass : NSObject {
func printFromSwift(vc:linkedinlogincontroller) {
println ("Print from Swift \(vc.result)")
}
}
我有一个名为 linkedinlogincontroller
的 Objective-C 控制器。在该控制器中,我有一个名为 result
的 NSMutableDictionary
。
简单地说,我只需要知道在 Swift 控制器中访问该词典的最佳实践方法是什么?
您应该可以像 swift 词典一样使用它。要访问其中的元素:
linkedinlogincontroller.result[key]
应该可以正常工作。
看看这个link: Using Objective C & Swift together.
在 <YourProjectName>-Bridging-Header.h
中公开 ObjectiveC class。
#import "linkedinlogincontroller.h"
目标 C Header
// linkedinlogincontroller.h
#import <UIKit/UIKit.h>
@interface linkedinlogincontroller : UIViewController
@property (nonatomic, strong) NSMutableDictionary * result;
@end
ObjectiveC 实现
// linkedinlogincontroller.m
#import "linkedinlogincontroller.h"
#import "<YourProjectName>-Swift.h"
@implementation linkedinlogincontroller
...
self.result = [NSMutableDictionary dictionaryWithDictionary:@{@"key":@"value"}];
NSLog(@"Print from Objc %@", self.result);
YourSwiftClass * so = [[YourSwiftClass alloc] init];
[so printFromSwift:self];
...
Swift 实施
// YourSwiftClass.swift
import Foundation
@objc class YourSwiftClass : NSObject {
func printFromSwift(vc:linkedinlogincontroller) {
println ("Print from Swift \(vc.result)")
}
}