应用程序在Xcode更新后崩溃

时间:2017-09-22 15:27:53

标签: objective-c swift xcode

我有一个Swift应用,其中包含一些Objective-C代码。它昨天正常工作,但今天早上我更新了XCode,现在一切都变得糟透了! 首先,在更新之后,我点击了XCode弹出框以允许它将我的应用程序升级到Swift4。这就是问题的起源。

我有一个名为Swift的{​​{1}}类,其中包含以下4个函数(其中包括):

RestClient

然后在我的/ Objective-C /文件夹中,我有一些文件,其中一个名为class func getInstance() -> RestClient { if (gRestClient == nil) { let prefs:UserDefaults = UserDefaults.standard return RestClient(username: prefs.string(forKey: "username")!, password: prefs.string(forKey: "password")!) } return gRestClient! } class func getUsername() -> String { if (gUsername == nil) { let prefs:UserDefaults = UserDefaults.standard gUsername = prefs.string(forKey: "username")! } return gUsername! } class func getPassword() -> String { if (gPassword == nil) { let prefs:UserDefaults = UserDefaults.standard gPassword = prefs.string(forKey: "password")! } return gPassword! } public func getServer() -> String { return MAIN_SERVER; } 。在这里,我有这行代码:

RestClientObj.m

你可以看到,我从这里打电话给NSString* url = [NSString stringWithFormat:@"%@/receipt/email/%@/%@/", [[RestClient getInstance] getServer], rrn, emailAddress]; NSString *authStr = [NSString stringWithFormat:@"%@:%@", [RestClient getUsername], [RestClient getPassword]]; RestClient.swift如下:

RestClientObj.h

整个升级也会导致其他问题。我有另一个类有以下错误:

#ifndef RestClientObj_h #define RestClientObj_h #endif /* ResClientObj_h */ @interface RestClientObj : NSObject { } +(BOOL) sendSMS:(NSString *)rrn mn:(NSString *)mobileNumber; +(BOOL) sendEmail:(NSString *)rrn mn:(NSString *)emailAddress; @end

就行:

No visible @interface for 'AppDelegate' declares the selector 'managedObjectContext'

任何人都可以对此有所了解吗?

编辑:这里有appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = [appDelegate managedObjectContext]; <-ERROR 类的一些代码:

AppDelegate

1 个答案:

答案 0 :(得分:0)

关闭这个。 问题是在变量声明之前缺少@obj标识符,以使其对我的objective-c代码可见,并结合XCode Swift Upgrade向导重命名某些函数。