Hi all! I seem to have found the problem.the problem is that the user-defined 
class is not working properly, see the following code and its output message 
please.Does anyone know how to fix this?

|

#import <Foundation/Foundation.h>

@interface SayHello : NSObject

- (void)greet;

@end

@implementation SayHello

- (void)greet {

NSLog(@"Hello GnuStep");

}

@end

int main(int argc, char *argv[]) {

NSLog(@"arrayCls = %@", objc_getClass("NSArray")); // Yes

NSLog(@"stringCls = %@", objc_getClass("NSString")); // Yes




//! NSLog(@"userCls = %@", [SayHello class]); -- crash here!

NSLog(@"userCls = %@", objc_getClass("SayHello")); // null




NSArray *nameList = [NSArray arrayWithObjects:

@"Scott", @"Jesse", @"Gaia",

nil

];

NSLog(@"nameList = %@", nameList); // good

NSArray *nameList2 = [[NSArray alloc] init];

NSLog(@"nameList2 = %@", nameList2); // Ok




SayHello *userObj = [[SayHello alloc] init]; // crash here!

NSLog(@"userObj = %@", userObj);

return 0;

}

|
|

2023-07-16 21:02:02.665 abc[2996:4992] arrayCls = NSArray

2023-07-16 21:02:02.665 abc[2996:4992] stringCls = NSString

2023-07-16 21:02:02.665 abc[2996:4992] userCls = (null)

2023-07-16 21:02:02.665 abc[2996:4992] nameList = (Scott, Jesse, Gaia)

2023-07-16 21:02:02.665 abc[2996:4992] nameList2 = ()

|
|

Process 2380 stopped

* thread #1, stop reason = Exception 0xc0000005 encountered at address 
0x7ffb73b91048: Access violation reading locatio

n 0x00000000

frame #0: 0x00007ffb73b91048 objc.dll`objc_msgSend + 40

objc.dll`objc_msgSend:

-> 0x7ffb73b91048 <+40>: movl (%r10), %r11d

0x7ffb73b9104b <+43>: cmpl $0x8, %r11d

0x7ffb73b9104f <+47>: je 0x7ffb73b91063 ; <+67>

0x7ffb73b91051 <+49>: cmpl $0x0, %r11d




|




Thank you!


Reply via email to