iOS 内省方法浅谈

NSObject协议和类定义了很多内省方法,有效的避免错误的进行消息派发、错误的假设对象相等、以及类似的问题。


~~~
     1、isKindOfClass:Class
     // 检查对象是否是那个类或者其继承类实例化的对象
     2、isMemberOfClass:Class
     // 检查对象是否是那个类但不包括继承类实例化的对象
     if ([item isKindClass:[NSData class]]) {
        // ...
     }
     如果item是NSMutableData类实例化的对象,而该类是NSData类的子类,那么[item isKindOfClass:[NSData class]]的值也是TRUE,而[item isMemberOfClass:[NSData class]]的值为False。
     如果item是NSData类实例化的对象,那么[item isMemberOfClass:[NSData class]]的值也是TRUE。
     3、respondToSelector:selector
     // 检查对象是否包含这个方法
     4、conformsToProtocol:protocol
     检查对象是否符合协议,是否实现了协议中所有的必选方法。
     
~~~
     参考文章:http://blog.csdn.net/u014536527/article/details/51010973
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Unity 中调用 iOS方法需要使用 Unity 的插件机制,具体步骤如下: 1. 创建一个 C# 脚本,用于调用 iOS方法。例如,创建一个名为 iOSBridge.cs 的脚本。 2. 在脚本中引入以下命名空间: ``` using System.Runtime.InteropServices; using UnityEngine; ``` 3. 声明一个与 iOS 方法对应的 C 函数,以及一个与该函数对应的 C# 函数。例如,我们要调用 iOS 中名为 "sendDataToServer" 的方法,可以这样声明: ``` [DllImport("__Internal")] private static extern void sendDataToServer(string data); public static void SendDataToServer(string data) { sendDataToServer(data); } ``` 4. 在 Unity 中创建一个 iOS 插件。创建一个名为 "iOS" 的文件夹,并在该文件夹下创建一个名为 "iOSBridge.mm" 的文件。 5. 将 "iOSBridge.mm" 中的代码实现为调用 iOS 的 "sendDataToServer" 方法: ``` #import "iOSBridge.h" #import "UnityAppController.h" void sendDataToServer(const char* data) { NSString* nsData = [NSString stringWithUTF8String:data]; UnitySendMessage("GameObjectName", "MethodName", [nsData UTF8String]); } ``` 其中, "GameObjectName" 和 "MethodName" 分别是你在 Unity 中调用的 GameObject 名称和方法名称。 6. 编译 iOS 插件。将 "iOSBridge.mm" 添加到 Xcode 项目中,并编译。 7. 在 Unity 中调用 iOS 方法。在你的 C# 脚本中,调用 "SendDataToServer" 方法即可: ``` iOSBridge.SendDataToServer("Hello, iOS!"); ``` 这样,就可以将 "Hello, iOS!" 传递给 iOS 中的 "sendDataToServer" 方法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值