我有一个非常简单的表,当tocuh一个单元格时,它打开一个带有一个UITextfield的新视图.我想要的是键盘将自动打开,用户不必触摸UITextfield.
这一切都在Interface Builder中完成,所以我不知道我是怎么做到的.我想我需要在某个时候设定焦点?
谢谢
有人可以为我揭开界面的神秘面纱,还是给我一些好的例子?我一直在这里和那里看到界面弹出,但我还没有真正接触到界面的良好解释或何时使用它们.
我在谈论接口与抽象类的上下文中的接口.
这当然是一个主观的事情,但我没有看到任何正面的界面名称前缀为'I'.对我来说,Thing几乎总是比可读性更强IThing.
我的问题是,为什么这个惯例存在呢?当然,它可以更容易地告诉其他类型的接口.但是,这种说法不会延伸到保留现在受到广泛谴责的匈牙利符号吗?
对于那个尴尬的"我",你的论点是什么?或者,更重要的是,微软可能是什么?
所以,我有一个需要实现的一堆方法的接口,方法名称是无关紧要的.
实现此接口的对象通常被放入集合中,并且还具有我希望它们使用的特殊toString()格式.
所以,我认为将hashCode(),equals()和toString()放入接口会很方便,以确保我记得覆盖这些的默认方法.但是当我将这些方法添加到接口时,如果我没有实现这三个方法,IDE/Compiler就不会抱怨,即使我明确地将它们放在接口中.
为什么不对我强制执行?它抱怨如果我没有实现任何其他方法,但它没有强制执行这三个方法.是什么赋予了?有线索吗?
我很困惑为什么这不能编译:
不可能的类型断言:Faz没有实现Foo(Bar方法有指针接收器)
如果我为Faz.Bar制作Faz.Bar的接收器而不是Faz指针,那么它编译得很好,但我认为拥有指针接收器总是更好,所以值不被复制?
package main
import (
"log"
)
func main() {
foo := New().(Faz)
log.Println(foo)
}
type Foo interface {
Bar() string
}
func New() Foo {
return &Faz{}
}
type Faz struct {
}
func (f *Faz) Bar() string {
return `Bar`
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种在Angular2中注入接口的正确方法?(参见下文)
我认为这与接口上缺少的@Injectable()装饰器有关,但似乎不允许这样做.
问候.
当CoursesServiceInterface作为接口实现时,TypeScript编译器会抱怨"CoursesServiceInterface找不到名称":
import {CoursesServiceInterface} from './CoursesService.interface';
import {CoursesService} from './CoursesService.service';
import {CoursesServiceMock} from './CoursesServiceMock.service';
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
GlobalService,
provide(CoursesServiceInterface, { useClass: CoursesServiceMock })
]);
Run Code Online (Sandbox Code Playgroud)
但是使用CoursesServiceInterface作为接口:
import {Injectable} from 'angular2/core';
import {Course} from './Course.class';
//@Injectable()
export interface CoursesServiceInterface {
getAllCourses(): Promise<Course[]>;//{ return null; };
getCourse(id: number): Promise<Course>;// { return null; };
remove(id: number): Promise<{}>;// { return null; };
}
Run Code Online (Sandbox Code Playgroud)
当service是一个类时,TypeScript编译器不再抱怨:
import {Injectable} from 'angular2/core';
import {Course} from './Course.class';
@Injectable()
export class CoursesServiceInterface {
getAllCourses() : Promise<Course[]> { return null; …Run Code Online (Sandbox Code Playgroud) 我有一堆实现通用接口的类:Command.
这一堆课程转到了Map.
为了使Map正常工作,我需要每个实现Command的类来覆盖该Object.equals(Object other)方法.
没关系.
但我想强迫平等的压倒一切.=>当实现命令的东西不重写等于时出现编译错误.
这可能吗?
编辑:BTW,我还需要强制重写哈希码...
放置@Transactional注释的最佳做法是什么?我应该注释接口方法还是实现?
我无法申报
interface IMyInterface
{
async Task<myObject> MyMethod(Object myObj);
}
Run Code Online (Sandbox Code Playgroud)
编译器告诉我:
这是应该实现的东西,还是async&await的性质是否禁止这种情况发生?
假设我有一个如下定义的接口:
public interface IFunctionality
{
void Method();
}
Run Code Online (Sandbox Code Playgroud)
我为抽象类实现了这个接口,如下所示:
public abstract class AbstractFunctionality: IFunctionality
{
public void Method()
{
Console.WriteLine("Abstract stuff" + "\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个具体的类,它继承自抽象类,如下所示:
public class ConcreteFunctionality: AbstractFunctionality
{
public void Method()
{
Console.WriteLine("Concrete stuff" + "\n");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有以下代码,
ConcreteFunctionality mostDerived = new ConcreteFunctionality();
AbstractFunctionality baseInst = mostDerived;
IFunctionality interfaceInst = mostDerived;
mostDerived.Method();
baseInst.Method();
interfaceInst.Method();
Run Code Online (Sandbox Code Playgroud)
执行这些东西后我得到的输出如下.
Concrete stuff
Abstract stuff
Abstract stuff
Run Code Online (Sandbox Code Playgroud)
但是我一直期望输出在所有三种情况下都是"混凝土东西",因为我在这里做的是分配ConcreteFunctionality类型AbstractFunctionality和变量的引用IFunctionality.
内部发生了什么.请澄清一下.
interface ×10
c# ×3
java ×3
equals ×2
oop ×2
angular ×1
asp.net-4.5 ×1
async-await ×1
builder ×1
concrete ×1
go ×1
hashcode ×1
inject ×1
iphone ×1
objective-c ×1
overriding ×1
pointers ×1
requirements ×1
spring ×1
tostring ×1
transactions ×1
uitextfield ×1