我想知道我什么时候做的事情
a = "This could be a very large string..."
b = a[:10]
Run Code Online (Sandbox Code Playgroud)
创建一个新字符串或返回一个视图/迭代器
如果使用Selenium测试我的webapp.webapp中的所有表单验证都是使用HTML5表单验证完成的.有没有办法断言是否使用Selenium触发了表单/输入验证?
我在几篇文章和Apple的代码指南中读到,在Objective-C String常量中应该定义为extern,NSString *const MY_CONSTANT;并且应该避免使用#define指令.这是为什么?我知道它#define是在预编译时运行但所有字符串将共享相同的内存地址.我读到的唯一优势是,如果必须更新或更改常量,则不必重新编译整个项目.这就是为什么应该避免#define的原因?
谢谢
更新:在这种情况下使用#define还是有好办法还是有更好的方法?
/* Constants Definition */
#define SERVER_URL @"http://subdomain.domain.edu.ar/Folder/"
NSString *const ServerURL = SERVER_URL;
NSString *const LoginURL = SERVER_URL@"welcome.asp";
NSString *const CommandURL = SERVER_URL@"com.asp";
Run Code Online (Sandbox Code Playgroud) 我在objc中使用C结构,并且我创建了一个函数来组装结构,就像Cocoa API中的结构一样.事情是这个结构不像NSRect那么NSPoint这个结构打包objc对象soo我在这里看到了潜在的内存泄漏.我是否需要提供"释放"结构的功能?
我没有创建一个ISKNewsCategory类,因为没有行为,但你认为这是一个好方法还是我应该定义类甚至不会有行为?
typedef struct ISK_NewsCategory {
NSString *name;
NSString *code
} ISKNewsCategory;
NS_INLINE ISKNewsCategory ISKMakeNewsCategory(NSString *name, NSString *code) {
ISKNewsCategory category;
category.name = [name retain];
category.code = [code retain];
return category;
}
Run Code Online (Sandbox Code Playgroud) 嗨,我正在写这个问题,因为我是ObjC的新手,在尝试制作拳头训练应用程序时,我想到了很多疑问.问题是我在C方面有很强的背景,去年我一直用Java编程,而且我用Smalltalk做了一些拼贴画(我这是因为那些是我的编程参考资料,而那些是我的语言' m比较ObjC).
我遇到的第一个问题是我不知道在ObjC和C之间画一条线的位置,例如在处理数学运算时,我应该使用math.h还是有更多像你这样的"对象方式"可以用Smalltalk(aNumber raiseTo:3)吗?C中没有背景的人如何学习ObjC?
我找不到的另一件事是集合的协议(我查看了Apple提供的Foundation Framework文档).因为我想实现一个expresion树类,我想知道是否有所有集合应该实现的方法(比如在Smalltalk或Java中),或者我需要手动检查每个集合,看看我的新集合是否应该有一个很酷的方法有.
我不知道我是不是太傻了,或者我正在寻找语言/框架没有的功能.我想在ObjC中编写ObjC风格,不考虑C,Java或Smalltalk.
对不起,如果问题太长了.
我有以下课程
public class MyClass<T> {
public Class<T> getDomainClass() {
GET THE CLASS OF T
}
}
Run Code Online (Sandbox Code Playgroud)
我已经google了这个问题,我找到的所有答案都告诉我使用getGenericSuperClass(),但这个方法的问题是我必须有第二个类扩展MyClass而我不想这样做.我需要的是获得具体类的参数化类型?
我知道您可以使用静态库来管理iOS应用程序的依赖项.但有没有办法使用maven来管理依赖项.我希望有一个中央存储库,供几个iOS项目共享静态库,我想使用maven来处理依赖项?
我想知道是否有可能使用@PrePersist,并@PreUpdate与Ebean玩吧!2.0.如果是这样,该功能如何激活.我已经看到一个月前有一个拉取请求添加此功能,但我无法在Play 2.0上进行此操作.
谢谢
我使用MVVM和依赖注入进行了几个月的iOS开发,我对结果非常满意.代码非常清晰,更容易测试.但我一直在解决一个问题,我没有找到一个我觉得非常舒服的解决方案.
为了理解这个问题,我想给你一些上下文.我工作的最后一个应用程序是按以下方式/层构建的:
当应用程序启动时,我们有一个Bootstrap类,用于初始化应用程序并创建主视图模型.我们有一个限制,即只有视图模型才能创建其他视图模型.例如,在具有包含元素列表的视图的情况下(在iOS中它将用UITableView表示)和每个thoses元素的详细视图,通过在点击元素后将其推送到导航堆栈来呈现在列表中.我们所做的是使附加到表视图控制器的视图模型创建详细视图模型.表视图控制器侦听表视图模型,然后通过创建详细视图控制器并将其视图模型传递给它来呈现详细视图模型.因此视图控制器不知道如何创建视图模型,它只知道如何为该视图模型创建视图控制器.
父视图模型的责任是将所有依赖项传递给子视图模型.
当视图层次中非常深的视图模型需要其父控制器不需要的依赖项时,就会出现问题.例如,访问某些外部Web服务的服务.因为它的父项没有那个依赖项,所以它必须将它添加到它的依赖列表中,从而为构造函数添加一个新参数.想象一下,如果祖父母也不具备这种依赖性,情况会怎样.
您认为什么是好的解决方案?可能的解决方案:
目前我们选择了工厂级解决方案,因为我们不需要使用单件,我们可以将工厂视为任何其他依赖性,这使得它相对容易测试.问题是,它有点像一个好的对象,并且通过拥有一个工厂,你实际上并不知道哪个是需要视图模型的真正依赖,除非你查看构造函数的实现来检查调用哪些工厂方法.
我正在玩ReactiveCocoa 3和Swift,我决定做一个简单的玩具应用程序来测试如何使用实现MVVM模式的ReactiveCocoa 3设计应用程序.
基本的工作人员工作得很好,但我不确定处理通知中心创建的信号的最佳方法是什么.
让我们说有人在应用程序的某个地方触发通知.通知被命名,TimerNotification并且Int在密钥可访问的用户信息字典内具有时间对象TimerCount.现在假设我有一个控制器,想要在每次TimerNotification触发时打印一条消息.
在旧的ObjC/RAC 2天里,我会做这样的事情
- (void)viewDidLoad {
NSNotificationCenter * notificationCenter = [NSNotificationCenter defaultCenter];
RACSignal * timerSignal = [[notificationCenter rac_addObserverForNotificationName:@"TimerNotification" object:nil]
takeUntil:self.rac_willDeallocSignal];
[timerSignal subscribeNext:^(NSNotification * notification){
NSValue * timerCount = notification.userInfo[@"TimerCount"];
NSLog(@"Timer count is %@", timerCount);
}];
}
Run Code Online (Sandbox Code Playgroud)
这将确保当控制器被解除分配时,将处理订阅.
我第一次尝试在Swift/RAC 3世界中做类似的事情是
private func createTimerSignalProducer() -> SignalProducer<Int, NoError> {
let notificationCenter = NSNotificationCenter.defaultCenter()
let deallocSignalProducer = self.rac_willDeallocSignal().toSignalProducer()
|> map { _ in () }
|> catch { _ in SignalProducer.empty as …Run Code Online (Sandbox Code Playgroud)