我想在不从UIViewVontroller继承的类中使用NSTimer.我有2个文件:一个ViewController和一个类似的TimerClass:
视图控制器:
import UIKit
class ViewController: UIViewController {
var timerClass = TimerClass()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
timerClass.launchTimer()
}
}
Run Code Online (Sandbox Code Playgroud)
TimerClass:
import Foundation
class TimerClass {
var timer = NSTimer()
init(){}
func launchTimer(){
var timer = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "timerEnd", userInfo: nil, repeats: true)
}
func timerEnd(){
println("That worked")
}
}
Run Code Online (Sandbox Code Playgroud)
当我启动该应用程序时,我遇到了崩溃:
2015-01-12 19:48:24.322 Timer_TEST [5829:185651]***NSForwarding:警告:类'Timer_TEST.TimerClass'的对象0x7fbc3be20710没有实现methodSignatureForSelector: - 提前故障无法识别的选择器 - [Timer_TEST.supportFile timerEnd]
任何的想法?
谢谢
我正在使用swift创建一个iOS应用程序.
假设我想在主线程的不同线程中对数组进行排序.我可以像这样继承NSOperation:
import UIKit
class Operation: NSOperation {
var array:[Int]
init(array:[Int]){
self.array=array
println("Operation init")
}
deinit{
println("Operation deinit")
}
override func main() {
for i in 0..<array.count{
for j in 0..<array.count{
if array[i]<array[j]{
let k = array[i]
array[i] = array[j]
array[j] = k
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的ViewController中,我可以使用类似的东西:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let array = [6,5,4,3,2,1]
let operation = Operation(array: array)
let operationQueue = NSOperationQueue()
operationQueue.addOperation(operation)
operation.completionBlock = {
println("done")
}
} …Run Code Online (Sandbox Code Playgroud) 我正在为我的 Nestjs 应用程序构建授权服务。
对于我的应用程序上的每个受保护资源(Media、Game、 ...),我都有一个*RoleEntity关联的(MediaRoleEntity、GameRoleEntity、 ...),它定义用户可以对特定资源执行哪些操作。其中每一项都*RoleEntity实现RoleEntityInterface:
export interface RoleEntityInterface<T extends ResourceEntity> {
resource: T;
user: UserEntity;
role: string;
}
Run Code Online (Sandbox Code Playgroud)
每个受保护实体 ( MediaEntity,, GameEntity...) 都会扩展ResourceEntity。
现在我想构建一个通用的提供者RoleService,负责数据库交互:
@Injectable()
export class RoleService<T extends ResourceEntity> {
readonly roleRepository: Repository<RoleEntityInterface<T>>;
async read(roleDto: Partial<RoleDto<T>>): Promise<RoleEntityInterface<T>> {
return this.roleRepository.findOne({
where: { ...roleDto },
});
}
async create(roleDto: RoleDto<T> | RoleDto<T>[]): Promise<void> {
await this.roleRepository.insert(roleDto);
}
}
Run Code Online (Sandbox Code Playgroud)
我想将这个服务注入到守卫、拦截器中...... …
当我的Picker嵌入到Modal中时,它不会出现在屏幕上(仅针对android测试)
renderModal() {
return (
<Modal
transparent={true}
visible={this.state.showModal}
onRequestClose={() => this.setState({ modalIsVisible: false })}
animationType={'fade'}>
<View
style={{ backgroundColor:'rgba(0, 0, 0, 0.7)', flex: 1, justifyContent: 'center', padding: 20, height:100 }}>
<View style={{ borderRadius:10, alignItems: 'center', backgroundColor: '#fff', padding: 20 }}>
<Text>
Choisissez la priorité de cet emplacement
</Text>
<Picker
selectedValue={this.state.storagePriority}
onValueChange={(priority) => this.setState({storagePriority: priority})}>
<Picker.Item label="Basse" value="LOW" />
<Picker.Item label="Normale" value="MEDIAN" />
<Picker.Item label="Haute" value="HIGH" />
<Picker.Item label="Réserve" value="STOCK" />
</Picker>
</View>
</View>
</Modal>
);
}
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?