gpt4 book ai didi

objective-c - Xcode 更新后应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 12:08:35 25 4
gpt4 key购买 nike

我有一个 Swift 应用程序,其中混合了一些 Objective-C 代码。它昨天还可以工作,但今天早上我更新了 XCode现在一切都完蛋了!首先,更新后,我单击 XCode 弹出框以允许其将我的应用程序升级到 Swift4。这就是问题开始的地方。

我有一个名为 RestClientSwift 类,具有以下 4 个函数(以及其他函数):

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;
}

然后在我的/Objective-C/文件夹中,我还有一些文件,其中一个名为 RestClientObj.m。在这里,我有这行代码:

NSString* url = [NSString stringWithFormat:@"%@/receipt/email/%@/%@/", [[RestClient getInstance] getServer], rrn, emailAddress];
NSString *authStr = [NSString stringWithFormat:@"%@:%@", [RestClient getUsername], [RestClient getPassword]];

如您所见,我从这里调用 RestClient.swiftRestClientObj.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

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

“AppDelegate”没有可见的 @interface 声明选择器“managementObjectContext”

上线:

appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext]; <-ERROR

有人能解释一下吗?

编辑:这是来自 AppDelegate 类的一些代码:

lazy var managedObjectContext: NSManagedObjectContext? = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext()
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()

最佳答案

只是为了结束这个。该问题是在变量声明之前缺少 @obj 标识符,使其对我的 Objective-C 代码可见,并结合 XCode Swift Upgrade 向导重命名了一些函数。

关于objective-c - Xcode 更新后应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46368222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com