如何在Objective C中声明虚函数
virtual void A(int s);
Run Code Online (Sandbox Code Playgroud)
如何在Objective C中声明相同的内容.
-(void)A:(int)s //normal declaration
Run Code Online (Sandbox Code Playgroud) #import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int a=10,b=5,c;
c=min(a,b);
NSLog(@"min:%d",c);
[pool drain];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我必须计算两个数字的最小值.我们可以使用if(a> b)来找出最小值.但是有没有任何预定义的函数来计算两个数的最小值.
我将cpp代码移植到Objective C中.
在cpp我们可以添加一个类作为friend class另一个类,并使用其所有的公共函数和变量.
我知道这个Objective C does not support friend class概念.
如何在Objective C中将类作为另一个类的朋友
我在'='标记之前收到预期表达式的错误.
#define RMH_MAX_UNENCODED_LENGTH= (RMH_MESSAGE_MAX_SIZE - RMH_ENCODED_MSG_OVERHEAD); // RMH_MAX_UNENCODED_LENGTH =4064
#define RMH_MAX_ENCODED_LENGTH = (3*sizeof(RMH_MAX_UNENCODED_LENGTH) / 4);//RMH_MAX_ENCODED_LENGTH =4;
int k = RMH_MAX_UNENCODED_LENGTH; //Error:expected expression before '=' token
NSLog(@"f:%d",k);
Run Code Online (Sandbox Code Playgroud) 我从cpp移植到Objective C.
目标C:
[pPacket SetHeaderSequenceNumber:static_cast<char>(m_transmitSequenceNumber + ASCII_ZERO)];
Run Code Online (Sandbox Code Playgroud)
CPP:
pPacket->SetHeaderSequenceNumber(static_cast <char>(m_transmitSequenceNumber + ASCII_ZERO));
Run Code Online (Sandbox Code Playgroud)
错误:static_cast未声明.
我在以下cpp代码中收到ClassID未声明的错误.
#include "stdafx.h"
#include <iostream>
using namespace std;
#define RM_SESSION_MSG 0x11
#define DECLARE_RS232_MSG(ClassID)
enum
{
ID=ClassID
}
int main()
{
DECLARE_RS232_MSG(RM_SESSION_MSG)
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有这个代码:
unsigned int k=(len - sizeof(MSG_INFO));
NSLog(@"%d",k);
for( unsigned int ix = 0; ix < k; ix++)
{
m_pOutPacket->m_buffer[ix] = (char)(pbuf[ix + sizeof(MSG_INFO)]);
}
Run Code Online (Sandbox Code Playgroud)
问题是,当:
len = 0 and sizeof(MSG_INFO)=68;
k=-68;
Run Code Online (Sandbox Code Playgroud)
这个条件进入for循环并持续无限次.
我收到以下代码的错误.
@interface event : NSObject
{
NSMutableDictionary m_cAppIdMap; //error:statically allocated instance of Objective C
}
@end
Run Code Online (Sandbox Code Playgroud)
我通过事件实现中的函数create将对象设置为字典.
[m_cAppIdMap setObject:pEvent forKey:[NSNumber numberWithUnsignedInt:wTimerId]]; //Error:Cannot convert to a pointer type
Run Code Online (Sandbox Code Playgroud)
这是我在字典上设置结构对象的方式.pEvent是包含5个字段的结构,wTimerId是无符号短整数(key).
这个方法detachNewThreadSelector:toTarget:withObject:将调用一个没有任何参数的方法.但是我必须启动在执行时重新执行单个参数的线程using threads.如何实现这一点.