为什么使用[ClassName alloc]而不是[[self class] alloc]?
我正在阅读Mark Dalrymple的在Mac 上学习Objective-C(仅在协议的一章中,因此仍然相对较新),并试图弄清楚某些内容: 为什么您会以自己的名字引用班级?如果我有一个名为Foo的课程,为什么我想写,说 [[Foo alloc] init] 而不是 [[[self class] alloc] init] 如果我有一个子类栏,第一个选项不会使我从编写 中无效 [[Bar alloc] init] 第二个选项允许它?什么时候会更好? 解决方案 通常,在类方法中,您确实使用[[self alloc] init].例如,为班级编写便利方法的规范方法是: + (id)fooWithBar:(Bar *)aBar { return [[[self alloc] initWithBar:aBar] autorelease]; } (请注意,在类方法中,self指的是类对象.) 但是,如果您实际上想要Foo class的
6 2024-01-24
编程技术问答社区
在scala中用self =>的方式进行别名。
一些scala apis别名 this to self ,例如, trait Function1[-T1, +R] extends AnyRef { self => 我知道 的混叠通常是有效的,但看不到诸如function1之类的特征如何从中受益.函数1不使用 self 在其定义中的任何位置,除了初始提及,所以它的目的是什么? 以前已经提出过这个问题的变体,但答案并非直接适用.答案已经讨论了自我类型和内部类别,但是我看不到这是如何适用的. 解决方案 参见 https://github.com/scala/scala/blob/2.10.1/src/library/scala/function1.scala#l8 在哪里说 // GENERATED CODE: DO NOT EDIT. See scala.Function0 for timestamp. 代码是由同一生成器生成的Function0至Function22.以某种方式到达Function5时
0 2024-01-23
编程技术问答社区
为什么ruby / rails / activerecord中总是不需要self呢?
在测试铁轨模型中的Getter/Setter对时,我发现了一个很好的行为例子,我一直认为是奇怪且不一致的. 在此示例中,我正在处理class Folder 'Folder' 在Getter方法上,如果我使用: def parent_name parent.name end ...或... def parent_name self.parent.name end ...结果完全相同,我得到了父文件夹的名称.但是,在Getter方法中,如果我使用... def parent_name=(name) parent = self.class.find_by_name(name) end ...父母变成零,但是如果我使用... def parent_name=(name) self.parent = s
2 2024-01-10
编程技术问答社区
在 xcode 调试窗口中,UIViewcontroller 的 "self "对象有 @"0 个对象"。
我将立即具有0个"自我"对象的ViewController进行,尽管我可以访问"自我".对象,我在调试窗口中看不到它们.如果没有粘贴代码,是否存在已知的原因?谢谢! 澄清: 在" self"下的调试窗口中,我通常可以看到我的变量和类,但它们的价值是什么,但对于这个,我看不到,它说 @" 0对象" 解决方案 看来,您确实确实将其他ViewController复制并粘贴到了故事板中的ViewController中,并且对控件感到困惑. 以下步骤可能会帮助您. 重新启动Xcode. 打开情节提要. 在ViewController中选择所有控件并删除它们. 撤消删除.
2 2023-12-18
编程技术问答社区
Objective-C: 何时调用self.myObject与直接调用myObject
在Objective-C中,这种一点点语法对我有些困惑. 我什么时候应该呼叫self.myObject vs仅调用myObject? 似乎是多余的,但是它们不可互换. 有人会启发我吗? 解决方案 如果您只是访问它们,则没有太多理由使用self.member.如果您要进行分配,那么如果您做的比简单@property (assign)参数(因实例),保留,复制等要多,这样就可以节省您正在编写的代码.一个例子: myObject = anotherObject; self.myObject = anotherObject; 第二个选择将确保您实际上以所需的方式分配对象(获取副本,增加保留计数等).它与[self setMyObject:anotherObject]. 没有什么不同 由于DOT通用被编译器替换为消息(类似于x[5]在常规数组工作中x[5]变为*(x + 5*sizeof(x))),因此在常规消息上使用点通用时没有开销或额外的效率. 其他解
2 2023-12-18
编程技术问答社区
WPF 绑定到自己
我有一个wpf Window,在某个地方有一个ListView我将List绑定到. 现在我的ListView中的某个地方有一个TextBox,Content属性设置为{Binding}. ,但这是速记.如何编写完整的绑定以绑定到自身? {Binding Path=Self}不起作用,{Binding Self}也不起来(后者是前者的捷径). 解决方案 简短答案:{Binding}是不是 "绑定到自身"的快捷方式(从 reachivesource.self ).相反,{Binding} 等于 {Binding Path=.},与当前源结合. 详细说明:绑定具有 source 和a 路径.例如,您可以使用 进行"与自身的绑定" 但是,这将 source 设置为控件本身,因
2 2023-12-12
编程技术问答社区
Silverlight WCF自我托管似乎没有找到ClientAccessPolicy.xml。
我已经在本地机器中创建了WCF自托管服务,Silverlight应用程序获取数据 从此服务中将其发送到远程服务器.它运行良好一个多月 但是突然停止抱怨众所周知的错误clientaccesspolicy.xml无法解决. 花了很多时间进行调试后,我意识到它失败了,因为远程服务器 地址已更改为IP地址而不是域地址,例如 http://2xx.1xx.223 iso http://www.myserver.com ,但是域地址不再可用 因此,我无法复制它,不确定真正改变的是罪犯. 如果网络服务器和自托管服务都在我的开发人员中运行,它仍然可以正常工作 机器和我可以在浏览器中看到" http://localhost:8000/clientaccesspolicy.xml"中的文件 但是404错误,如果输入" http://my-machine-name:8000/clientaccesspolicy.xml". 当我阅读一些博客时,ClientAccesspolicy.xml应该位于本地机器
4 2023-11-27
编程技术问答社区
视频、flash或…HTML视频
我不是HTML,CSS,JS或PHP的新手,我已经做出了差异.网页,但是每当我包含来自YouTube或另一个外部站点的视频时,我总是使用iframe或嵌入代码.因此,今天我开始制作自己的个人页面,我想知道如何插入自己的视频.我有两个不同的网络主机,一个用于上传视频,另一个用于网页.因此,流(我正确吗?)来自主机#1,主机#2用于网页. 我什至不知道如何格式化或转换视频mpeg,avi在线(使用我自己的页面),但这不是我发表这篇文章的原因.我需要将它们转换为FLV,以将视频放在我的页面上吗?转换后的视频质量(因质量而丢失)呢? 如何制作自己的在线视频播放器? 解决方案 潜入html5 有一个极好的 HTML5视频上的文章.您应该阅读A-Z(喝咖啡)的这篇文章.它解决了几乎所有与HTML5视频有关的问题,包括您应该转换为HTML5视频,视频格式,如何转换视频以及如何在页面上添加标记以播放这些视频的原因. ,如果您想知道如何播放HTML5视频,请看一下 html5视频
8 2023-11-18
编程技术问答社区
动态地创建一个变量名
我有此代码来创建一个接口和一些按钮(Maya中的Python) class mrShadowMapChangerUI: def __init__(self): smAttrs = ['shadowMap','smapResolution','smapSamples','smapSoftness','smapBias'] smNiceAttrs = ['Active','Resolution','Samples','Softness','Bias'] attrs = zip(smAttrs,smNiceAttrs) self.form = mc.columnLayout() self.smapResolutionField = mc.textFieldButtonGrp( label=attrs[1][1], text=int(defaultLightValues[1]),
6 2023-11-13
编程技术问答社区
python 全局名称 'self' 未定义
刚刚开始学习Python,我敢肯定这是一个愚蠢的问题,但我正在尝试这样的事情: def setavalue(self): self.myname = "harry" def printaname(): print "Name", self.myname def main(): printname() if __name__ == "__main__": main() 我遇到的错误是: NameError: global name 'self' is not defined 我看到了这种使用自我语句的方式来引用我读取的某些代码中不同方法的变量. 感谢您的帮助 解决方案 self是类的自我参考.您的代码不在课堂上,您只有定义功能.您必须将方法包裹在课堂上,如下所示.要使用方法main(),您首先必须实例化类的对象并在对象上调用函数.
0 2023-11-13
编程技术问答社区
Python- 如何在一个由N个self组成的类中获得self变量的列表
编辑: 我想生成n个代理.每个代理都有一个名称,因此我从名称创建一个随机名称并将其分配给类代理. 运行模型后,我想获取代理名称的列表. 这是来自Mesa: import names from mesa import Agent, Model from mesa.time import RandomActivation class Agent(Agent): def __init__(self, name): self.name= names.get_full_name() self.wealth = 1 def step(self): pass class Model(Model): def __init__(self, N): self.num_agents = N self.schedule = RandomActivation(self)
10 2023-11-13
编程技术问答社区
如何在不明确接受的情况下让自我进入一个Python方法中
我正在开发一个文档测试框架 - 基本上是PDF的单位测试.测试是该框架定义的类实例的(装饰)方法,这些方法是在运行时找到和实例化的,并调用方法执行测试. 我的目标是减少撰写考试的人们需要关注的古怪的python语法,因为这些人可能或可能不是Python程序员,甚至不是很多程序员.因此,我希望他们能够编写" def foo():"而不是" def foo(self):"对于方法,但仍然能够使用" self"访问成员. 在一个普通程序中,我认为这是一个可怕的想法,但是在类似域的语言类型的程序中,似乎值得一试. 我已经通过使用装饰器成功地从方法签名中消除了自我(实际上,由于我已经在测试用例中使用了装饰器测试案例方法中的任何内容. 我已经考虑使用全局进行自我,甚至提出了一个或多或少有效的实现,但我宁愿污染最小的名称空间,这就是为什么我宁愿将变量直接注入测试中案例方法的本地名称空间.有任何想法吗? 解决方案 这是一个单行方法装饰器,似乎可以在不修改任何可呼叫类型的特
0 2023-11-13
编程技术问答社区
类变量和实例变量之间有什么区别?
python中的类和实例变量有什么区别? class Complex: a = 1 和 class Complex: def __init__(self): self.a = 1 使用呼叫:x = Complex().a在两种情况下,分配x至1. 将对__init__()和self的更深入的答案表示赞赏. 解决方案 编写类块时,创建 class属性(或类变量).您在类块中分配的所有名称,包括您定义def的方法. 创建了类实例后,任何带有该实例的内容都可以在其上创建实例属性.内部方法,"当前"实例几乎总是绑定到名称self的原因,这就是为什么您将其视为"自我变量"的原因.通常在面向对象的设计中,连接到类的代码应该控制该类实例的属性,因此几乎所有实例属性分配都在方法内完成,使用对self中收到的实例的引用方法的参数. 类属性通常与 static 变量(或方法)进行比较,如Java,C#或C ++等语言中所示.但是,
8 2023-11-13
编程技术问答社区
PHPUnit-Use $this or self for static methods?
我不想写一个长文字,因为这是一个简短的问题. Phpunit测试包含几种静态方法.例如,所有这些 identicalTo,equalTo. 我的IDE(带有Intellisense/AutoCompletion)不接受$this的呼叫,而是与自我接受.我了解到应通过班级来调用静态功能,而不是对象,因此self. 什么更正确? $this->assertTrue('test'); 或 self::assertTrue('test'); ? (如果" $ this"更正确,您可以指出为什么我们不应该使用"自我"?) 解决方案 通常,self仅用于参考静态方法和属性(尽管令人困惑的是,您 can 是指具有self的非静态方法,以及带有self的静态方法c3>,提供了self调用的方法,不参考$this.)
2 2023-11-07
编程技术问答社区
self.delegate = self; 这样做有什么问题吗?
self.delegate = self;这样做怎么了? 正确的方法是什么? 谢谢,尼尔. 代码: (UITextField*)initWith:(id)sender:(float)X:(float)Y:(float)width:(float)hieght:(int)textFieldTag { if (self = [super initWithFrame:CGRectMake(X, Y,width, hieght)]) { finalText = [[NSMutableString alloc] initWithString:@""]; senderObject = sender; self.textColor = [UIColor blackColor]; self.font = [UIFont systemFontOfSize:17.0]; self.backgroun
4 2023-11-05
编程技术问答社区
UIButton addTarget self是如何工作的?
我尝试找出为什么self指向GameViewController而不是答案 gameviewcontroller.swift class GameViewController: UIViewController { var gameplay = QuestionsController(colors: colors) override func viewDidLoad() { super.viewDidLoad() self.view.addSubview(gameplay.answersController.answers[0].button) } func didPressAnswerButton(sender: UIButton!) { sender.setTitle("Im from GameViewController class", forState: .Normal) }
0 2023-11-02
编程技术问答社区
未调用appdelegate中的UnknownClickedButtonaIndex
我在myApplicationappdelegate.m文件中使用2个按钮"取消"和"确定"来调用uialert,该警报被调用,但点击了"取消"或"确定"按钮 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 未调用方法. 我在MyApplicationAppdelegate.h文件中添加了UialertviewDelegate,如下 #import UIKit/UIKit.h @interface MyapplicationAppDelegate: NSObject UIApplicationDelegate,UIAlertViewDelegate { .. } 我想知道还需要什么. 解决方案 我不确定您在发布问题时是否错字,但您应该在 @interface MyapplicationAppDelegate: NSObject
2 2023-11-02
编程技术问答社区
为什么这个方法中没有使用 `self`?
我的印象是,Python类中的方法始终需要self参数(我知道它实际上不必是self,只是一些关键字).但是,我写的这堂课并不需要它: import ZipFile import os class Zipper: def make_archive(dir_to_zip): zf = zipfile.ZipFile(dir_to_zip + '.zip', 'w') for filename in files: zf.write(os.path.join(dirname, filename)) zf.close() 看吗?没有self.当我将self参数包含到make_archive>时,我会得到TypeError: make_archive() missing one positional argument错误.在我搜索以找出为什么会发生这种情况时,我实际上复制并尝试从文档运行类似的程序: c
4 2023-10-30
编程技术问答社区
令人困惑的类型错误
我有一个小的python程序,该程序应该通过运行适当的方法来反应按下按钮.但是,它没有这样做,而是给我一个令人困惑的错误... from tkinter import * class App: def __init__(self, master): self.left = 0 self.right = 0 widget = Label(master, text='Hello bind world') widget.config(bg='red') widget.config(height=5, width=20) widget.pack(expand=YES, fill=BOTH) widget.bind('',self.incSpeed) widget.focus()
12 2023-10-30
编程技术问答社区
对自我的类型化定义有什么影响吗?
我遇到了一些具有以下内容的C ++代码: typedef Request Request; 这只是一个no-op还是实际的Typedef实际效果,如果是,它有什么影响? 解决方案 您可以读取有关C ++ 2003 ANSI ISO IEC 14882 2003的所有规则 typedef 在7.1.3节中的规定.在7.1.3中,2)据说身份 typedef 如果名称已经引用某种类型. 这是合法的: typedef int Request; typedef Request Request; // Redefines "Request" with no effect ,不是: typedef Request Request; // Illegal, first "Request" doesn't name a type. 标准有与此有关的特定示例. C ++ 2003,§7.1.3/2: 在给定的非类范围中,Typedef规范符可用于重新定
4 2023-10-30
编程技术问答社区