【Foundation-86-2】#import Foundation/NSValue.h

2024-08-27 07:48
文章标签 import foundation 86 nsvalue

本文主要是介绍【Foundation-86-2】#import Foundation/NSValue.h,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



@interface NSValue (NSValueExtensionMethods)


// 封装 弱引用的类(不知道用那里)0.0

+ (NSValue *)valueWithNonretainedObject:(id)anObject;

@property (nonatomic, readonly) id nonretainedObjectValue;

    // button  是一个 obj(假设是弱引用)__weak UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];button.backgroundColor = [UIColor redColor];[button setFrame:CGRectMake(111, 111, 111, 111)];// value  objNSValue *value = [NSValue valueWithNonretainedObject:button];[array addObject:value];NSValue *newValue = [array objectAtIndex:0];[self.view addSubview:(UIButton *)[newValue nonretainedObjectValue]];





//封装 对象的指针

+ (NSValue *)valueWithPointer:(const void *)pointer;

- (void *)pointerValue;

    NSValue* start = [NSValue valueWithPointer:@selector(start)];[start pointerValue]; //就对应了 @selector(start);UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];[button setFrame:CGRectMake(111, 111, 111, 111)];button.backgroundColor = [UIColor redColor];[self.view addSubview:button];[button addTarget:self action:[start pointerValue] forControlEvents:UIControlEventTouchUpInside];}-(void)start{NSLog(@"11");
}





//判断 2 个value 是否一致

- (BOOL)isEqualToValue:(NSValue *)value;

    NSValue *value1 = [NSValue valueWithCGSize:CGSizeMake(11, 11)];NSValue *value2 = [NSValue valueWithRange:NSMakeRange(11, 11)];if ([value1 isEqualToValue:value2]) {NSLog(@"same");}else{NSLog(@"different");}


@end



这篇关于【Foundation-86-2】#import Foundation/NSValue.h的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111069

相关文章

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Vue3+vite中使用import.meta.glob

前言:         在vue2中支持require导入模块或文件但是在vue3中已经不支持require导入了,为此vite提供了一个全新的方法import.meta.glob方法来支持批量导入文件  import.meta.glob 匹配到的文件默认是懒加载的,通过动态导入实现,并会在构建时分离为独立的 chunk。如果你倾向于直接引入所有的模块(例如依赖于这些模块中的副作用首先被应用

Python 2.7 安装MySQLdb模块 import MySQLdb

python 2.7 使用 import MySQLdb 报 Traceback (most recent call last):File "<stdin>", line 1, in <module>ImportError: No module named MySqldb 于是乎执行一下命令 一下搞定 pip install MySQL-python 再次执行import MySQ

【大数据Java基础-JAVA 面向对象11】关键字(二):package/import

1.1 使用说明: * 1.为了更好的实现项目中类的管理,提供包的概念 * 2.使用package声明类或接口所属的包,声明在源文件的首行 * 3.包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)、“见名知意” * 4.每"."一次,就代表一层文件目录。 1.2 举例: 举例一: 某航运软件系统包括:一组域对象、GUI和reports子系统 举例二:MVC设计模式

力扣86.分割链表

class Solution {public ListNode partition(ListNode head, int x) {// 初始化两个链表的头节点和尾节点,分别用于存储小于x和大于等于x的节点ListNode leftHead = null, leftTail = null;ListNode rightHead = null, rightTail = null;// 临时变量,用于遍历

python circular import python循环导入问题

遇到的问题是因为模块之间存在循环导入(circular import),导致了ImportError。循环导入是指两个或多个模块相互导入对方,如模块A导入了模块B的方法,模块B又导入了模块A的方法,从而导致其中一个模块在完全初始化之前就被另一个模块尝试导入,进而引发错误。 解决循环导入问题的方法 重构代码结构: 尽量避免模块之间的直接相互导入。可以考虑将公共的部分抽象出来,放到单独的模块中。

HarmonyOS 延迟加载(lazy import)

功能特性 延迟加载特性可使待加载文件在冷启动阶段不被加载,直至应用程序实际运行过程中需要用到这些组件时,才按需同步加载相关文件,从而缩短应用冷启动耗时。 使用方式 文件的调用点,可以直接增加lazy标识。 但需要注意的是,后续执行的加载是同步加载,有可能会阻塞任务执行(如点击任务,触发了延迟加载,那么运行时会去执行冷启动未加载的文件,从而增加耗时),因此是否使用lazy需要开发者自行评估。