Note that there are some explanatory texts on larger screens.

plurals
  1. POunrecognised selector sent to instance-Objective C
    primarykey
    data
    text
    <p>I am new to Objective C.I am trying out a simple program.Got an exception.Could not able </p> <p>to fix it up.</p> <h3>packet.h</h3> <pre><code>#import &lt;Foundation/Foundation.h&gt; #define RS232_PROTOCOL_DEVICE_ID 0xD8 #define RS232_MAJOR_REV (1) #define RS232_MINOR_REV (23) #define RS232_VERSION (RS232_MAJOR_REV * 10000 + RS232_MINOR_REV) struct msg { int deviceId; int version; int reserved[5]; }a; enum { RMH_MESSAGE_MAX_SIZE =4096 }; @interface Packet : NSObject { unsigned char m_abTxMsgImage[RMH_MESSAGE_MAX_SIZE]; unsigned int m_nTxImageSize; }; + (void)initialize; - (void)send; @end </code></pre> <h3>packet.m</h3> <pre><code>#import "Packet.h" @implementation Packet - (id)init { if (self=[super init]) { m_nTxImageSize=0; } return self; } + (void)initialize { a.deviceId =RS232_PROTOCOL_DEVICE_ID; a.version = RS232_VERSION; a.reserved[0]=0; a.reserved[1]=0; a.reserved[2]=0; a.reserved[3]=0; a.reserved[4]=0; } - (void)send { NSLog(@"DeviceId:%d VersionNo:%d",a.deviceId,a.version); } @end </code></pre> <h3>data.h</h3> <pre><code>#import &lt;Foundation/Foundation.h&gt; #define ENCODED_MSG_DATA_OFFSET 8 #define ENCODED_CRC_BYTE_LEN 4 #define ASCII_STX 0x02 typedef enum { eRs232MsgStatus_Valid } eRs232MsgStatus; @interface data : NSObject { //char tmp[100]; //char tmp1[101]; int m_uSessionId; int m_chSequenceChar; int m_nMessageId; int m_uVersion; } - (BOOL) TxCreateImage:(int*)pData :(int)uLen; @end </code></pre> <h3>data.m</h3> <pre><code>#import "data.h" @implementation data - (BOOL)TxCreateImage:(int*)pData :(int)uLen { NSLog(@"Hello!"); sprintf((char *)pData,"%c%02X%c%02X%02X",ASCII_STX,m_uSessionId,m_chSequenceChar,m_nMessageId,m_uVersion); uLen = ENCODED_MSG_DATA_OFFSET; uLen += ENCODED_CRC_BYTE_LEN + 1; return YES; } @end </code></pre> <h3>main.m</h3> <pre><code>#import &lt;Foundation/Foundation.h&gt; #import "Packet.h" #import "data.h" int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; Packet* pack = [[Packet alloc]init]; [pack send]; data* dat = [[data alloc]init]; [dat TxCreateImage:(int*)[pack m_abTxMsgImage] :[pack m_nTxImageSize]]; [pool drain]; return 0; } </code></pre> <p>Output</p> <pre><code>2011-05-04 17:34:00.006 Test-packetCreation[4982:a0f] DeviceId:216 VersionNo:10023 2011-05-04 17:34:00.009 Test-packetCreation[4982:a0f] -[Packet m_nTxImageSize]: unrecognized selector sent to instance 0x100831e00 2011-05-04 17:34:00.009 Test-packetCreation[4982:a0f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Packet m_nTxImageSize]: unrecognized selector sent to instance 0x100831e00' *** Call stack at first throw: ( 0 CoreFoundation 0x00007fff84aaccc4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff8167b0f3 objc_exception_throw + 45 2 CoreFoundation 0x00007fff84b06140 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0 3 CoreFoundation 0x00007fff84a7ecdf ___forwarding___ + 751 4 CoreFoundation 0x00007fff84a7ae28 _CF_forwarding_prep_0 + 232 5 Test-packetCreation 0x0000000100001aed main + 209 6 Test-packetCreation 0x0000000100001a14 start + 52 7 ??? 0x0000000000000001 0x0 + 1 ) terminate called after throwing an instance of 'NSException' Program received signal: gSIGABRTh. sharedlibrary apply-load-rules all </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload