草庐IT

内包装

全部标签

swift - Swift Property Wrapper 能否引用其包装属性的所有者?

在Swift的属性包装器中,有人可以引用类的实例或拥有被包装属性的对象吗?使用self显然行不通,super也行不通。我试图将self传递给属性包装器的init()但这也不起作用,因为selfon当评估@propertywrapper时,配置尚未定义。我的用例是在一个管理大量设置或配置的类中。如果任何属性发生变化,我只是想通知感兴趣的各方某些发生了变化。他们并不真的需要知道哪个值,所以为每个属性使用类似KVO或Publisher的东西并不是真的必要。属性包装器看起来很理想,但我不知道如何将某种引用传递给包装器可以回调的拥有实例。引用资料:SE-0258enumPropertyIdent

objective-c - Swift 调用包含 block 的 Objective-C 包装器函数

我有一个带有原型(prototype)的Objective-C包装器(ObjCWrapper.h和ObjCWrapper.m)+(void)login:(NSString*)usernameandPassword:(NSString*)passwordandErrorBlock:(SuccessBlock)errorBlockandSuccessBlock:(SuccessBlock)successBlock;使用类型定义typedefvoid(^SuccessBlock)(NSString*);和实现+(void)login:(NSString*)usernameandPasswor

swift - 出于 CAAnimation 的目的将 Swift 结构转换/包装为 NSValue?

我有一个绘制圆弧的自定义CALayer子类。它看起来像:classArcLayer:CALayer{varstrokeColor:UIColor=UIColor.blackColor(){didSet{self.setNeedsDisplay()}}varstrokeWidth:CGFloat=1.0{didSet{self.setNeedsDisplay()}}varstrokeCap:CGLineCap=.Butt{didSet{self.setNeedsDisplay()}}varstartRadians:CGFloat=0.0{didSet{self.setNeedsDispl

ios - 如何以编程方式在 SceneKit 中围绕立方体包装 png 纹理

我是SceneKit的新手...尝试让一些基本的东西工作但到目前为止没有太大成功。出于某种原因,当我尝试将png纹理应用于CNBox时,我最终只得到黑色。这是我在viewDidLoad中的简单代码片段:letsceneView=(viewasSCNView)letscene=SCNScene()letboxGeometry=SCNBox(width:10.0,height:10.0,length:10.0,chamferRadius:1.0)letmat=SCNMaterial()mat.locksAmbientWithDiffuse=truemat.diffuse.contents=

C++11-lambda表达式/包装器/线程库

C++11篇三零、前言一、lambda表达式1、lambda的引入2、lambda表达式语法3、捕获列表说明4、函数对象与lambda表达式二、包装器1、function包装器2、bind三、线程库1、线程的概念及使用2、线程函数参数3、原子性操作库(atomic)4、lock_guard与unique_lock1、mutex的种类1、lock_guard3、unique_lock5、两个线程交替打印奇数偶数零、前言本章是讲解学习C++11语法新特性的第三篇文章,主要学习lambda表达式,包装器,线程库一、lambda表达式1、lambda的引入在C++98中,如果想要对一个数据集合中的元素

ios - 何时使用未包装的可选值作为类型定义的一部分

比方说,我们定义一个类classC{varunwrapped:String!varnonOptional:Stringinit(nonOptional:String){self.nonOptional=nonOptional}}然后我们创建一个C的实例:varc=C(nonOptional:"hola")我看到的是,这两个属性之间的主要区别是没有必要初始化一个未包装的属性,您可以像这样进行比较:ifc.unwrapped==nil{//Dowhatever}虽然非可选属性不允许您与nil进行比较。关键是,在我看来,创建未包装的属性是不安全的,因为当您尝试访问具有nil值的未包装属性时,

swift - 为什么 nil 合并运算符包装一个隐式展开的默认值?

我看到运算符没有理由返回隐式展开的可选。但是它把一个隐式解包的可选默认值包装成可选的(wrapped)有什么意义呢?我只是期望非可选结果。我是不是觉得哪里错了?vardefaultValue:Int!=0varoptional:Int?letresult=optional??defaultValueprint(defaultValue.dynamicType)//ImplicitlyUnwrappedOptionalprint(result.dynamicType)//Optional 最佳答案 查看声明了nil合并运算符的Swif

swift - 为什么我的 Swift 协议(protocol)扩展不能包装相同类型的现有函数?

我正在尝试为一个集合创建一个“安全”的下标运算符——一个忽略超出集合可用索引范围的部分的运算符。期望的行为是在所有情况下都返回一个Slice;当下标范围与集合范围不重叠时,应返回空数组。这似乎是对thisanswer中介绍的技术的直接扩展.documentationofthecollectionsubscriptoperatorisverystraightforward:subscript(bounds:Range)->Slice{get}但是当我在我的包装函数中采用这些相同的类型时,我得到以下信息:复制/粘贴版本:extensionCollectionwhereIndices.Ite

c++ - Swift - 使用 Objective-C 包装器调用 C++ 文件 - 传递 Int 值

我正在尝试从Swift项目调用C++方法。我用了this设置和获取字符串值的教程,效果很好。然后我尝试对整数值执行相同的操作,但在我的objective-c包装器类中遇到了一些问题。#import#import"TestCppClassWrapper.h"#include"TestCppClass.h"@interfaceTestCppClassWrapper()@propertyTestCppClass*cppItem;@end@implementationTestCppClassWrapper-(instancetype)initWithTitle:(NSString*)title

ios - 如何使堆栈 View 或容器 View 包装内容?

此处是从Android代码库迁移的新手IOS开发人员。在android中,如果我们想要一个容器根据其内部内容自动调整其高度,我们只需执行如下操作...这是如何通过Storyboard在自动布局中实现的?如何使stackview或containerview的宽度或高度为wrap_content? 最佳答案 您可以在ios上使用UIStackView(垂直/水平)或UIScrollview完成相同的操作我在scrollview中解释一下整个过程1-将ScrollView拖到Storyboard文件/Xib中的ViewController