小编fab*_*abb的帖子

拥抱`/`与类型推断

在GHCi中,以下代码可以正常工作:

f1 :: Float
f1 = f2

-- f2 :: Float
f2 = 1/1
Run Code Online (Sandbox Code Playgroud)

但是在Hugs中,我遇到了一个类型错误 - 它想成为一个Double.当我取消注释f2的类型签名时,它工作正常.

不应该完全按照类型推断这个吗?

这是Hugs中的一个错误吗?

我检查出的类型/和的实例DoubleFloat- /适用于FractionalS,并且有两个一个分数的实例DoubleFloat,所以这不应该成为问题.

haskell hugs

4
推荐指数
1
解决办法
143
查看次数

Swift -Ounchecked和断言

前言

在Swift中,ENABLE_NS_ASSERTIONS被忽略,断言是打开还是关闭取决于SWIFT_OPTIMIZATION_LEVEL,请参阅此处以获取更多信息.

  • assert() 积极参与 -Onone
  • assertionFailure() 积极参与 -Onone
  • precondition()是活跃的-Onone-O
  • preconditionFailure()是活跃的-Onone,-O-Ounchecked
  • fatalError()是活跃的-Onone,-O-Ounchecked

我想要实现的目标

调试和Beta 版本应该启用断言,版本构建应该禁用断言.

我怎么能做到

我可以通过该precondition方法在Swift中编写所有断言,并使用-Ounchecked标志编译Release版本,使用标志构建beta版本-O.

我不确定的是什么

iOS版本中的默认版本是-O.有没有建议不要使用-Ounchecked发布版本?这可能导致哪些其他不良副作用?

assert ios swift

4
推荐指数
1
解决办法
1235
查看次数

Xcode 构建阶段输入文件夹

我有一个自定义的“运行脚本”构建阶段,它根据文件夹中包含的文件生成一些源文件A。构建阶段在“编译源”构建阶段之前执行。随着源文件的生成,我想避免每次运行时都触发完整的项目重建,我想利用“输入文件”和“输出文件”部分,如本博客文章所述

不幸的是,该文件夹A是文件夹而不是文件。当我提供文件夹路径A作为“输入文件”时,当文件夹中的任何内容都没有更改时,构建阶段不会正确执行。当我重命名某些文件时,构建阶段也会正确执行。但是当更改文件夹内文件中的某些内容时A,不会执行构建阶段

我尝试同时提供不带 的文件夹名称*,也尝试提供***最后。

当给定输入文件夹中的任何文件发生更改(添加、删除、内容修改)时,如何执行构建阶段?

xcode ios

4
推荐指数
2
解决办法
2620
查看次数

git init - 关于git 1.5.4.3

我们的服务器上有git 1.5.4.3(2008年2月的版本).看来,当时没有选择--bare.

那我怎么能创建一个裸存储库呢?

在本地创建它并将其scp到服务器将是一种选择,但需要付出太多努力.或者是否可以使用本地 git命令创建新的远程存储库

git init git-bare

3
推荐指数
1
解决办法
549
查看次数

display:table破解设置的宽度/高度

最近,我越来越喜欢使用CSS-Table Layouts.

当我遇到另一个问题display:table,@ vincicat指出表格布局能够打破指定的css width/height.

我尝试了一点,遇到了浏览器的不一致:http://jsfiddle.net/fabb/WywqB/

在Chrome中渲染 在Chrome中

在Opera中渲染 在歌剧院

是否display:table可以改变指定的CSS widthheight?W3C规范中是否有任何消息来源(我还没有找到任何内容)?

浏览器不应该表现相同吗?哪个浏览器是对的?

html css w3c

3
推荐指数
1
解决办法
1万
查看次数

在facet_grid中调整One Line的线型

我有一个类似于这个的情节:

b <- data.frame(x=c(1,2,3,1,2,3,1,2,3,1,2,3),y=c(1,2,3,1.5,1.9,2.5,3,2,1,2.9,1.8,1.5),c=c("1","1","1","2","2","2","1","1","1","2","2","2"),f=c("b","b","b","b","b","b","a","a","a","a","a","a"))
ggplot(b,aes(x=x,y=y,color=c,group=c))+geom_line()+facet_grid(f ~ .)
Run Code Online (Sandbox Code Playgroud)

现在我只希望上面"a"中的"1"行更粗并且是虚线.这可能吗?

r facet ggplot2

3
推荐指数
1
解决办法
1255
查看次数

将NSArray转换为Swift Array <T>并过滤掉与T不匹配的元素

如果所有元素都已经是类型,那么转换NSArray为Swift Array类型T很容易T:

let arr1 : NSArray = [1,2,3]
let arr2 = arr1 as? Array<Int> // works
Run Code Online (Sandbox Code Playgroud)

但现在假设一个非同质NSArray的对象不匹配T:

let arr1 : NSArray = [1,2,3,"a"]
let arr2 = arr1 as? Array<Int> // nil, as not all elements are of type Int
Run Code Online (Sandbox Code Playgroud)

我试图实现的是向下过滤掉所有不匹配的元素T.所以在上面的例子中我想得到一个只Array<Int>包含对象的东西[1,2,3].

如何优雅地做到这一点?

casting objective-c nsarray ios

3
推荐指数
1
解决办法
1411
查看次数

iOS中的多栏文字

我正在尝试在多列中显示一些水平滚动的文本。曲解是,列宽是已知的,但列数取决于文本长度

有一个Core Text Objective-C包装器,但是它使用固定的列数来使它失去资格。

我知道使用a UIWebView和一些CSS 3 可能是可能的column-width,如这个小提琴所示。但是我也读到UIWebViews显然需要很多内存,我想避免这些内存。

我还有另一种方法可以实现这一目标吗?

uiwebview multiple-columns uitextview ipad ios

2
推荐指数
1
解决办法
2839
查看次数

ARC转换失败:-ccc-arcmt-check参数"unused"

我正在尝试将我的iOS项目升级为使用ARC.通过编辑 - >重构 - >转换为Objective-C ARC开始转换时,我选择我的目标,取消选择链接库并按检查.接下来我收到以下错误:

clang: error: argument unused during compilation: '-ccc-arcmt-check'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

有些想法如何解决这个问题?Xcode甚至没有尝试开始转换源文件.

请注意,我的项目文件中有几个目标共享一些源文件.转换对话框仅显示当前方案中的目标集.

我已经成功转换了另一个(静态库)项目,因此Xcode设置应该没问题.

编辑:我已经激活了Xcode首选项中的错误后继续构建,至少现在我看到所有ARC错误.让我们看看这是否允许我转换为ARC.

EDIT2:我得到这个错误我的目标的每一个源文件,我希望使用ARC的-这样看来,如果编译器并发标志问题-CCC-arcmt检查-fno-objc弧.

xcode ios automatic-ref-counting

2
推荐指数
1
解决办法
375
查看次数

奇怪的CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION警告

我已经激活了新的编译器警告CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION.我可以解决大多数警告,但一个源于宏,我不知道如何解决这个问题.

宏看起来像这样:

#define MYAssertionFail(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

从可空指针'NSString*_Nullable'到非可空指针类型'NSString*_Nonnull'的隐式转换

知道如何重写宏吗?

我已经尝试__PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS/__PRAGMA_POP_NO_EXTRA_ARG_WARNINGS但它没有帮助.

clang compiler-warnings ios objective-c-nullability

2
推荐指数
1
解决办法
1422
查看次数

无助级别中的断言

我有一个测试用例和一个帮助类.在helper类中,我想在这里使用assert:

MainTests.h

#import <SenTestingKit/SenTestingKit.h>

@interface MainTests : SenTestCase

@end
Run Code Online (Sandbox Code Playgroud)

MainTests.m

#import "MainTests.h"
#import "HelperClass.h"

@implementation MainTests

- (void)testExample {
    HelperClass *helperClass = [[HelperClass alloc] init];
    [helperClass fail];
}

@end
Run Code Online (Sandbox Code Playgroud)

HelperClass.h

#import <SenTestingKit/SenTestingKit.h>

@interface HelperClass : SenTestCase

- (void)fail;

@end
Run Code Online (Sandbox Code Playgroud)

HelperClass.m

#import "HelperClass.h"

@implementation HelperClass

- (void)fail {
    STFail(@"This should fail");
}

@end
Run Code Online (Sandbox Code Playgroud)

旁注:我必须使辅助类成为子类,SenTestCase才能访问断言宏.

来自辅助类的断言被忽略.有什么想法吗?如何在辅助类中使用断言?

unit-testing assert ios sentestingkit

1
推荐指数
1
解决办法
275
查看次数

存根方法并将其返回值动态设置为输入参数

我想动态地将依赖于参数的值返回到模拟方法,在概念上如下:

[realObject stub] myMethod:CAPTUREDARGUMENT) andReturn:myMethod:CAPTUREDARGUMENT];
Run Code Online (Sandbox Code Playgroud)

或者像OCMock一样访问块中的调用:

void (^theBlock)(NSInvocation *) = ^(NSInvocation *invocation) {
    /* code that reads and modifies the invocation object */
};
[[[mock stub] andDo:theBlock] someMethod:[OCMArg any]];
Run Code Online (Sandbox Code Playgroud)

这可能与新西兰人有关吗?

mocking ios kiwi

1
推荐指数
1
解决办法
571
查看次数

如何将[AnyObject?]转换为[AnyObject]

我需要做一些简单的事情来转换[AnyObject?][AnyObject].因此,数组中的选项应该被解包,并且如果nil被踢出数组.在Swift中有一个简单的方法吗?

arrays swift

1
推荐指数
1
解决办法
222
查看次数