v-bind动态绑定class(对象语法与数组语法)

v-bind动态绑定class(对象语法与数组语法),第1张

绑定方式是使用对象 v-bind:class="{ }"。

对象{ }由键值对构成,键是类名,值是布尔值。

如下所示:

可以把对象绑定成一个 methods,或使用 computed 计算属性。

即可以把这个对象写成一个方法,再把方法放到vue实例的methods属性里面。

OC 允许动态注册一个类(指定父类和类名),Runtime API还可以为这个动态创建的类添加方法、成员变量(需要在注册类之前添加)、属性、协议等等。动态创建类后,需要调用函数注册该类,这样才可以使用。

示例:

示例

示例:

示例:

示例:

其中 method_exchangeImplementations() 交换两个方法实现在iOS框架中应用的很广。比如:

UIButton 继承自 UIControl ,通过 addTarget-Selector 添加点击事件后,都会来到 sendAction:to:forEvent: 方法。所以可以通过方法交换的方式来达到 hook 的方式。

示例中,还有一个点,调用系统原有实现时,调用了 gl_sendAction:to:forEvent: 。字面上看造成了死循环其实不然,我们通过下面的图来解释。

方法没有交换前

@selector(sendAction:to:forEvent:) 可以找到 sendAction:to:forEvent: 的实现。

@selector(gl_sendAction:to:forEvent:) 可以找到 gl_sendAction:to:forEvent: 的实现。

实现交换后

所以系统内部调用 sendAction:to:forEvent: 时,会来到 gl_sendAction:to:forEvent: 的实现。当我们调用系统原有的实现就要调用 gl_sendAction:to:forEvent:

我们都知道数组是不可以添加 nil 的,否则会发生崩溃

crash信息:

从这我们可以看出, addobjectivecect: 方法最后调用了 insertObject:atIndex: 。NSMutableArray的类并不是我们看到的NSMutableArray,而是__NSArrayM 。这是因为 Foundation framewor k框架下广泛使用了 类簇 的设计模式。它管理了一组隐藏在公共抽象父类下的具体私有子类。

在Cocoa中,实际上许多类都是以类簇的方式实现的,即它们是一群隐藏在通用接口之下与实现相关的类。例如创建数组时可能是 __NSArray0 , __NSSingleObjectArray , __NSArrayI ,所以请不要轻易尝试创建 NSString , NSArray , NSDictionary 的子类。对类簇使用 isKindOfClass 和 isMemberOfClass 的结果可能是不正确的。因为类簇是由公共抽象类管理的一组私有类,公共抽象类并不是实例对应的真正的类,类簇中真正的类的从属关系被隐藏了。

所以要对 NSMutableArray *** 作,选择的类是 __NSArrayM

这里要对 insertObject:atIndex: 添加非空判断。

在 C# 中,可以使用静态类和静态成员来实现多个窗口之间共享数据的目的。可以在静态类中定义公共的静态字段,然后在多个窗口中使用这些字段来存储和访问公共的数据。

下面是一个示例代码,用于定义一个公共的字符串动态数组:

public static class SharedData

{

public static List<string> MyStrings = new List<string>();

}

在这个代码中,SharedData 是一个静态类,它包含一个公共的字符串动态数组 MyStrings。任何窗口都可以通过 SharedDataMyStrings 来访问和修改该数组。

例如,可以在一个窗口中添加一个字符串到该数组中:

SharedDataMyStringsAdd("hello world");

在另一个窗口中可以读取该数组中的字符串:

foreach (string s in SharedDataMyStrings)

{

ConsoleWriteLine(s);

}

需要注意的是,静态成员是整个应用程序域共享的,因此需要注意线程安全的问题,以免在多线程环境下出现竞争条件和数据不一致的情况。

以上就是关于v-bind动态绑定class(对象语法与数组语法)全部的内容,包括:v-bind动态绑定class(对象语法与数组语法)、Runtime常用API、c#如何建立公共动态数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9818768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存