Stworzyłem projekt testowy, aby wypróbować Swift. Ale utknąłem na importowaniu klasy Swift do klasy Objective-C. Nazwa projektu to "TestSwift1". I ustawiłem Define Module in Packaging na YES. XCode-Beta3Używanie klasy Swift w Objective c. Błąd niezadeklarowanego identyfikatora
mam następny kod:
//swift SwtClass.swift
import Foundation
class SwtClass
{
var title = ""
}
//Objective-C ObjClass.h
@interface ObjClass : NSObject
@property (nonatomic, strong) NSString* title;
@end
//Objective-c ObjClass.m
#import <Foundation/Foundation.h>
#import "ObjClass.h"
#import <testSwift1-Swift.h>
@implementation ObjClass
- (void)doSomething
{
SwtClass* b; // Error: "Use of undeclared identifier 'SwtClass'"
// Error: "Use of undeclared identifier 'b'"
NSLog(@"something is done");
}
@end
Jeśli utworzysz 'SwtClass' podklasę' NSObject', wówczas zostanie podany '@ objc'. Jest to rzadki przypadek, gdy masz klasę, która nie dziedziczy z klasy ObjC (przynajmniej obecnie). – Jack
Dzięki, edytowałem moją odpowiedź zgodnie z twoją wzmianką. –
@ Vitaliy1 Nie powinieneś był usuwać pytania podczas przesyłania do NSManagedObjectId, może to być pomocne dla innych. Możesz go odzyskać. – Teejay