我正在尝试掌握如何将界面从Android转换为Objective-C


所以我最近开始学习Objective-C,在工作中,我们

一直在开发一个Android应用程序,我们稍后也将在IOS上发布,所以我试图了解如何将一些代码重写到Objective-C中,让我们以这个为例:

import java.io.Serializable;
/*
  * Serializable is needed for sending in Android intents.
  */
public interface IMessage extends Serializable {
enum MessageID {
    // Nothing to send or reply
    NONE,
    // Client polls server
    POLL,
    POLL_OK,
    // Client internal, indicates network problems
    NONETWORK,
    // Indicates programming errors
    INVALIDMESSAGE,
    INVALIDSTATE,
    UNKNOWNMESSAGE,
    // Application setup messages
    LOGIN,
    LOGIN_OK,
    LOGIN_ACCOUNT_DOES_NOT_EXIST,
    LOGOUT,
    LOGOUT_OK,
    REGISTER,
    REGISTER_OK,
    REGISTER_NICKNAME_ALREADY_EXISTS,
    UPDATEACCOUNT,
    UPDATEACCOUNT_OK,
    UPDATEACCOUNT_NICKNAME_ALREADY_EXISTS,
    // Game setup messages
    QUERYGAMESTATUS,
    QUERYGAMESTATUS_IDLE,
    QUERYGAMESTATUS_PENDING,
    QUERYGAMESTATUS_PLAYING,
    REQUESTGAME,
    REQUESTGAME_OK,
    REQUESTGAME_ALREADY_IN_GAME,
    REQUESTGAME_DUPLICATE_REQUEST,
    ENTERGAME,
    ENTERGAME_OK,
    ENTERGAME_ERROR,
    // Game playing messages
    // ...
};
MessageID     getID();
String        encodeAttributes();
void          decodeAttributes(String data);
}

所以我想知道您是否必须始终将 .m 文件与 .h 文件一起使用,因为我猜在 Obejctive-C 中可能是这样的:

@interface IMessage : NSObject
typedef enum {
//all the same
} MessageID;
NSString *encodeAttributes();
-(void) decodeAttributes(NSString data);

还是我必须将其拆分为两个文件? 因为我猜你必须同时拥有 .m/.h 文件?

协议

是Objective-C等同于Java接口的协议。

不要使用IMessage,匈牙利符号在C#中使用,但不在Objective-C或Java中使用。

如果你声明某些东西需要被其他类使用,你可以在.h中声明它们。但是,如果您特别需要该类,请在 .m 中声明它

如果你想要另一个的var和数据.它应该在 .h 中声明

您需要将声明保留在.h文件(接口)和.m(实现)中的实现。仅当单个文件中的类是嵌套类时,才能对类使用接口和实现。您可以在此处找到有关序列化(存档)的优秀教程:http://nshipster.com/nscoding/

相关内容

  • 没有找到相关文章