我正在阅读如何在Objective-C中实现私有方法(在Objective-C中为类定义私有方法的最佳方法)以及我脑海中浮现的一个问题:
您如何设法实现受保护的方法,即子类可见的私有方法?
假设我有一个MySuperClass,其中包含一个包含其所有私有方法的Category,我想实现一个MySubclass覆盖或调用super到其中一个MySuperClass私有方法.这是可能的(使用Categories方法实现私有方法)?
看一下这些代码,底部有覆盖方法.
// ===========================
// = File: MySuperClass.h
// = Interface for MySuperClass
// ===========================
@interface MySuperClass : Object
...
@end
// ===========================
// = File: MySuperClass.m
// ===========================
#import "MySuperClass.h"
// =================================
// = Interface for Private methods
// =================================
@interface MySuperClass (Private)
-(void) privateInstanceMethod;
@end
// =====================================
// = Implementation of Private methods
// =====================================
@implementation MySuperClass (Private)
-(void) privateInstanceMethod
{
//Do something
}
@end
// ================================
// = Implementation for MySuperClass
// ================================ …Run Code Online (Sandbox Code Playgroud) 我刚开始编写套接字程序.了解到单个UDP数据包有源端口目标端口和一些代表路由器的MAC地址.等等.我想知道为什么有人不能创建带有虚假信息的自定义数据包并通过互联网发送.我想知道我们的电脑有多安全.应该采取什么措施来保护它?
我正在为我创建的记录器类编写一些单元测试,我想模拟文件类.我找不到我需要用来创建MOQ的接口...那么如何在没有接口的情况下成功MOQ一个类?
我还不清楚如何在没有可用接口的情况下使用依赖注入:
private FileInfo _logFile;
public LogEventProcessorTextFile(FileInfo logFile) {
_logFile = logFile;
}
Run Code Online (Sandbox Code Playgroud)
当我真的想做这样的事情时(注意IFileInfo而不是FileInfo):
private IFileInfo _logFile;
public LogEventProcessorTextFile(IFileInfo logFile) {
_logFile = logFile;
}
Run Code Online (Sandbox Code Playgroud) 我正在将Java代码转换为C#,需要替换使用Java的正则表达式.典型的用途是
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//...
String myString = "B12";
Pattern pattern = Pattern.compile("[A-Za-z](\\d+)");
Matcher matcher = Pattern.matcher(myString);
String serial = (matcher.matches()) ? matcher.group(1) : null;
Run Code Online (Sandbox Code Playgroud)
应该从匹配的目标字符串中提取捕获组.我会很感激简单的例子.
编辑:我现在已经添加了代码的C#等价物作为答案.
在Scala中,您可以通过使用共享公共名称但具有不同arities或不同参数类型的方法来重载方法.我想知道为什么这也没有扩展到方法的返回类型?请考虑以下代码:
class C {
def m: Int = 42
def m: String = "forty two"
}
val c = new C
val i: Int = C.m
val s: String = C.m
Run Code Online (Sandbox Code Playgroud)
有什么理由不适用吗?
谢谢,
文森特.
如果我使用循环创建大量HTML元素,比如
for (i= 1; i < 100; i++) {
var my_element = document.createElement ("td");
row.appendChild (my_element);
my_element.onclick = function () {my_function (i));
}
Run Code Online (Sandbox Code Playgroud)
然后当单击该元素时,传递给的i的值my_function始终为100,无论调用它的是哪个数字元素.我通过使用解决了这个问题
my_element.id = "something"+i;
my_element.onclick = function (e) {my_function (e.target.id)};
Run Code Online (Sandbox Code Playgroud)
(对于Internet Explorer,显然target需要srcElement.)我很想知道是否有任何方法可以创建函数而无需像这样添加ID到元素.
嗨,我希望在我的Django应用程序中创建一个SOAP服务,但遇到了一些问题.首先,我已经能够成功地遵循soaplib Hello World教程(google"soaplib hello world",因为我只能使用1个超链接,因为这是我的第一个问题),它使用CheryPy WSGI服务器来运行服务,而soaplib客户端到发起SOAP请求.
通过遵循这个djangosnippets片段,我无法将其转换为Django中的服务.目前我正在使用Django开发服务器.
http://localhost:8000/hello_world/在浏览器中查看或使用soaplib客户端发出SOAP请求会返回Django错误页面并显示错误:
Tried hello_world_service in module foo.views. Error was: 'module' object has no attribute 'hello_world_service'
显然urls.py是正确匹配,但根据我链接的django片段,应该没有视图hello_world_service.
我觉得我错过了最后一步,任何知识都会非常有用.
谢谢,马库斯
我按照Hillegass的第8章在那里实施了RaiseMan应用程序.然后我决定按照相同的过程来实现我正在进行的Cocoa编程类中的练习代码,但是在构建和运行之后我收到了以下非常神秘的错误消息.
无法从类_NSControllerObjectProxy的对象<_NSControllerObjectProxy:0x100460e30>创建BOOL
我不知道这个错误信息的含义.进行谷歌搜索提出了一些点击,但他们的补救措施似乎是做我已经做的事情.
我盯着我在Interface Builder中做的所有连接和任务,没有任何看起来明显错误.
所以我进入调试器并在MyDocument类的init方法中设置断点,并且它被调用两次.怎么会发生这种情况?我应该寻找什么才能使init方法被调用两次?堆栈跟踪显示init由我们自己编写的系统函数调用.
为了比较,我回到了Hillegass第8章之后的项目,并在MyDocument类的init方法中设置了一个断点,并且它被调用一次(这是人们所期望的).
我正在使用cms将静态网站转换为静态网站.我将cms安装在公共目录的子目录中.为了避免丑陋的域名(http://example.com/cms/),有一种简单的方法可以使用mod_rewrite将http://example.com/ ...重写为http://example.com/cms/ ...同时确保如果请求不会在404中结束,则没有重定向.
一个例子:
/
/cms/index.html
/cms/file.dat
/file.dat
Run Code Online (Sandbox Code Playgroud)
如果用户请求/index.html,它们应该被重定向到/cms/index.html,但是如果它们请求/file.dat,它们不应该被重定向到/cms/file.dat,因为该文件存在于所请求的地点
编辑 感谢您的回答.
有没有人知道宝石或允许用户向模型添加字段的良好实现?
防爆.
用户希望在联系人模型中添加"内部注释"字段.在界面中,他们只需选择"新字段">"类型:文本"
谢谢
c# ×2
methods ×2
.htaccess ×1
.net ×1
activerecord ×1
categories ×1
closures ×1
cocoa ×1
django ×1
interface ×1
java ×1
javascript ×1
loops ×1
mod-rewrite ×1
moq ×1
objective-c ×1
oop ×1
overloading ×1
private ×1
regex ×1
scala ×1
security ×1
soap ×1
super ×1
tcp ×1
unit-testing ×1