gpt4 book ai didi

Objective-C 和 Cocoa : crash when calling a class function without entering the function

转载 作者:行者123 更新时间:2023-12-03 15:51:13 26 4
gpt4 key购买 nike

我在 MyUtils 类中有一个类函数(声明和实现)。
当我调用此函数时,我的应用程序崩溃了。在调试器中,我在“theFunction”函数的第一个 Action 上有一个断点。并且永远不会达到这个断点。

这是代码:

// =================================================================================================
// MyUtils.m
// =================================================================================================
+ (NSString*) changeDateFormat_fromFormat:(NSString*)sourceFormat sourceDateString:(NSString*)sourceDateString destFormat:(NSString*)destFormat {
if (sourceDateString == nil) return (nil); **<-- breakpoint here**

NSDate* aDate = [NSDate dateFromString:sourceFormat theDateString:sourceDateString];
return ([aDate stringValueWithFormat:destFormat]);
}

// ===================================================================
// MyUtils.h
// ===================================================================
@interface MyUtils
+ (NSString*) changeDateFormat_fromFormat:(NSString*)sourceFormat sourceDateString:(NSString*)sourceDateString destFormat:(NSString*)destFormat;
+ (void) simpleAlert_ok:(NSString*)alertTitle message:(NSString*)alertMessage;

@end


// ===================================================================
// Elsewhere.m
// ===================================================================
- (void) aFunction:(SomeClass*)someParam {
SomeOtherClass* val = nil;
NSString* intitule = nil;


intitule = [MyUtils changeDateFormat_fromFormat:@"yyyyMMdd" sourceDateString:@"toto" destFormat:@"EEEE dd MMMM yyyy"]; **<-- crash here**

控制台说:
2011-01-03 02:05:07.188 Learning Project[1667:207] *** NSInvocation: warning: object 0xe340 of class 'MyUtils' does not implement methodSignatureForSelector: -- trouble ahead
2011-01-03 02:05:07.188 Learning Project[1667:207] *** NSInvocation: warning: object 0xe340 of class 'MyUtils' does not implement doesNotRecognizeSelector: -- abort

如果我将电话替换为 NSString *item = @"youyou";那么一切都好。

在调用之前强制保留 aPreviousNSString 不会改变任何内容。
你知道发生了什么吗?

最佳答案

您声明了 MyUtils没有父类(super class),所以运行时提示它没有实现某些基本行为(理所当然)。您可能打算从 NSObject 继承:

@interface MyUtils : NSObject {
}

+ (NSString*) changeDateFormat_fromFormat:(NSString*)sourceFormat sourceDateString:(NSString*)sourceDateString destFormat:(NSString*)destFormat;
+ (void) simpleAlert_ok:(NSString*)alertTitle message:(NSString*)alertMessage;
@end

关于Objective-C 和 Cocoa : crash when calling a class function without entering the function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581161/

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