问题标签 [class-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 在Objective-C中从类别访问在类扩展中定义的属性:可能吗?
我的一门课MyClass
很大,我想把它分成几类MyClass(A)
,,, MyClass(B)
...。我的问题是某些方法MyClass+A
使用@property
了类扩展中定义的一个MyClass()
。
我可以从类别中访问它吗?如果可以:如何访问?
如果没有,还有其他方法可以继续吗?
ios - Swift 包含 Array 的扩展
我正在尝试在 Array 中添加一个扩展方法,如下所示:
但self.filter {$0 == obj}
不要工作。编译器错误:
找不到接受提供的参数的“==”的重载
c++ - 我需要帮助混合 C++ 代码和 Objective-C 代码
我正在为 XCode 中的 Blackmagic Design AV 设备编写设备驱动程序,并且在将 BMD 的 SyncController 类从他们的缩写示例代码(如下)中包含到我的纯 Objective-C 项目中时遇到了麻烦。
他们的 DecklinkAPI.h 文件包含丰富的 C++ 代码,所以当我尝试将这个头文件原样包含在一个 Objective-C 类中时,编译器在 API 深处窒息包括:未知类型名称“类”;您指的是 'Class' 吗?
我试图将 C++ 位捆绑到一个 Obj-C 类扩展中,如此处所述,但没有太大成功。我从未做过任何 C++ 编程(也从未使用过 Obj-C 类扩展),所以这对我来说是一个新领域。
我不确定是否需要为我的 SyncController 对象创建一个额外的包装类,或者我是否可以在这个对象上做一个类扩展并将 C++ 位洗牌到 .mm 文件中。
我希望能够#include "SyncController.h"
在没有编译器阻塞的情况下在 Objective-C 类中做一个(或其包装器)。
对此的任何帮助将不胜感激。
首先,这是我当前的 SyncController.h 文件:
接下来,这是我的(简化的)SyncController.mm 文件:
objective-c - 在扩展接口中声明成员与在实现中声明成员有什么区别?
对于我认为完全相同的事情,我看到了两种截然不同的行为。
在类扩展中定义我的私有成员,如下所示:
或者像这样在类实现中定义我的私有成员:
我使用此代码的方式是创建一个 ClassB 对象,使用该 ClassB 对象初始化一个 ClassA 对象,然后将 ClassA 对象添加到一个可变数组
当我使用第一种方法并在接口扩展中定义我的成员时,我看到可变数组中的每个元素确实是我所期望的。
但是,使用第二种方法,我看到我ClassB* b
在对象中的指针ClassA
总是指向最近创建的ClassB
对象。也就是说,一旦-(void)init
方法完成,每个对象中的ClassB
指针都会指向我在其中创建的对象ClassA
ClassB
createClassB3
这里发生了什么?
我还应该提到 ClassB 对象是一个 C++ 对象,这是一个 Objective-C++ 类。
objective-c - 在 Objective C、mac OS 中遇到类扩展问题。收到错误“NSInvalidArgumentException”,没有可见的@interface 声明选择器
我正在编写 Apple 开发人员 pdf 第 76 页的练习 3,位于类类别和扩展部分“使用 Objective C 编程”中,可在此处找到:( https://developer.apple.com/library/mac/documentation/cocoa /conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html )
我的 XYZPerson 标题如下所示:
我的实现文件如下所示:
然后在我的主文件中我有:
可能有不止一个错误与我提出的问题无关,我现在是 Objective C 的新手。我得到的确切编译器错误是在上面写着的那一行,
编译器错误显示,“ARC 语义问题。‘XYZperson’没有可见的@interface 声明选择器‘setWeight:’。
objective-c - Objective C 类扩展 - 如何用 readwrite 方法覆盖只读?
我无法理解如何用类扩展中编写的 readwrite 方法覆盖 readonly 方法。我的头文件中有一个只读方法,在我的实现文件中,我尝试使用类扩展来覆盖它。我刚刚在这个线程中询问了这个问题,我在其中包含了我所指的代码:Objective C, mac OS 中的类扩展遇到问题。收到错误“NSInvalidArgumentException”,没有可见的@interface 声明选择器
这里:Objective-C Succinctly:Categories and Extensions是我正在使用的另一个来源,它让我相信我应该能够使用类扩展名使用 readwrite 属性覆盖头文件中声明的只读属性。如果我错了,请纠正我,我是一个完全新手,只是想弄清楚基础知识。
objective-c - 简单的类扩展/继承说明
我已经编写 Objective-C 几年了,并决定回去学习基础知识以帮助我编写更好的代码。我正在尝试学习所有关于实例变量、继承和类扩展的知识。我一直在阅读这三个方面的内容,但有一件事让我大吃一惊。我有一个简单的应用程序,其中包含 2 个类,Person、Male(从 Person 继承),当然还有 Main(它导入 Male 类,因此能够访问 Person 和 Male 中的实例变量)。
代码很简单,为了篇幅我就不一一贴出来了。基本上 Main 采用这些变量并使用它们。这是让我难以置信的部分:
当我删除括号和变量声明时,如下所示:
代码仍然继承并执行得很好。
1.如果我们可以只创建两个属性,那么一开始就在那里声明它们有什么意义?
2.为什么要创建两个实例变量和属性来与之对应?
3.我知道我们可以在 .m 中声明变量,而不是让它们对类和子类的所有内容都是私有的。像这样:
这里有什么区别?我觉得我错过了很多基础知识。有没有一种简单的方式来看待这一切?
c# - Identity 2.0:创建自定义 ClaimsIdentity 例如:User.Identity.GetUserById(int id) 用于每个请求验证
看到这个类似的问题:Need access more user properties in User.Identity
我想创建自定义身份验证方法以与我的 Razor 视图一起使用,该方法允许轻松访问IdentityUser
与 User.Identity 对象相关的属性,但我不知道如何去做。我想创建几个类似于 , 等的自定义扩展User.Identity.GetUserName()
,User.Identity.GetUserById()
而不是使用这个ViewContextExtension方法。我的身份验证类型目前是DefaultAuthenticationTypes.ApplicationCookie
VS2013 MVC5 模板中的默认类型。正如 Shoe 所说,我需要在用户登录后插入此声明。
我的问题是:
您如何以及在何处创建具有this IIdentity
IPrincipal 下的 out 参数的自定义声明?
这将允许我通过视图中的 CookieAuthentication 访问用户属性,以访问 DDD 设置中的实体,其中我在使用 Identity 2.0 的单个应用程序中有多个 DbContext。我最终将使用 WebAPI,但现在我希望它尽可能简单。我找到了这个 SO Q&A,但它适用于使用门票的 Web 表单。也不确定门票和代币之间的区别?
这是ViewContext
从基本控制器使用的当前方法:
看法:
基本控制器.cs
扩展.cs
我正在寻找的是,但在哪里以及如何?
看法:
解决方案
我只是编辑了Extension.cs文件并使用了用于 _LoginPartial.cshtml 的 Base 控制器的继承并编辑了ViewContextExtension
该类:
objective-c - xCode6 iOS8如何为现有类创建带有扩展名的文件?
如果我没记错的话,在 xCode 5 及以下版本中,项目导航器的“新建文件”选项包含一个模板,用于为现有类创建扩展。该选项位于“Cocoa Touch Class”旁边,允许输入基类名称。生成的文件具有类似“NSString+JSON.h”的形式
如何在 xCode 6 中创建类扩展?我是否从一个类文件开始,然后修改它,它的名称包括类别名称?
php - PHP检查是否从扩展类调用方法
我有两个类的代码
和
然后像这样的一些用法
你可以在这里查看代码http://goo.gl/Gq63Wk
如果从类“旧”中调用方法 query(),我希望更改该变量 $fromClassOld。
类旧不能修改。
我通过使用 debug_backtrace() 并检查变量 debug_backtrace()[0]['file'] 发现了 hack,但我很确定这可以以更好的方式解决。