小编Bil*_*ill的帖子

如何在ScalaQuery中撰写查询以创建可重用的特征?

我在将不同的查询组件组合到单个查询中时遇到了一些麻烦.我的目标是创建一组特征(例如SoftDeletable,HasName,SortedByName,WithTimestamps),我可以简单地将它们混合到Table对象中以添加该行为.

理想情况如下:

abstract class BaseModel[Tuple <: Product,CaseClass](tableName: String)
     extends Table[Tuple](tableName) {
  def id = column[Int]("id", O.AutoInc, O.PrimaryKey)

  def mapped: MappedProjection[CaseClass, TupleClass]

  def allQuery = this.map(_.mapped)
  final def all = database.withSession { implicit session: Session => 
    allQuery.list() 
  }

  ...
}

trait SoftDeletable[Tuple  <: Product, CaseClass]
    extends BaseModel[Tuple,CaseClass] {
  def isActive = column[String]("is_active")

  def * = super.* ~ isActive
  def allQuery = /* here, I'd like to compose super.allQuery 
                    with a filter that returns rows where isActive is true */
}

trait …
Run Code Online (Sandbox Code Playgroud)

scala scalaquery

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

如何将LLDB的默认语言设置为Swift?

我有一个大型的Swift项目,在技术上是一个混合项目,因为它有少量的Objective-C代码.但每当我进入LLDB时,表达式评估器都期待Objective-C语法.我可以使用Swift,e -l swift --但每次输入都很繁琐.

我可以将LLDB表达式求值程序默认为Swift吗?

xcode lldb swift

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

如何将parMap与monadic函数一起使用?

我有一个monadic函数getRate:

getRate :: String -> IO Double
Run Code Online (Sandbox Code Playgroud)

我想将这个函数映射到String的列表上.通常情况下,我会这样做:

mapM getRate ["foo", "bar"]
Run Code Online (Sandbox Code Playgroud)

但是由于每次调用getRate进行网络调用,我都希望并行化地图,以便在一个单独的线程中获取每个速率(或者至少在队列中分散).我在想类似的东西

parMapM getRate ["foo", "bar"]
Run Code Online (Sandbox Code Playgroud)

但没有parMapM函数,parMap不适用于monadic函数.

我能做什么?

parallel-processing monads concurrency multithreading haskell

12
推荐指数
2
解决办法
835
查看次数

Objective-C是否支持traits/mixins?

在Objective-C中是否有任何模拟特征或混合的技巧?

例如,在Scala中,我可以这样做:

trait ControllerWithData {
  def loadData = ...
  def reloadData = ...
  def elementAtIndex = ...
}

trait ControllerWithStandardToolbar {
  def buildToolbar = ...
  def showToolbar = ...
  def hideToolbar = ...
}

class MyTableController extends ControllerWithData 
                        with ControllerWithStandardToolbar {
  def loadView = {
     super.loadView

     loadData
     buildBar
  }
}
Run Code Online (Sandbox Code Playgroud)

它基本上是一种将多个功能组合(或混合)到一个类中的方法.所以现在我有一种多功能的UIViewController,我的所有控制器都是子类化的,但是如果我可以打破它并让特定的控制器继承特定的行为,它会更整洁.

objective-c traits mixins

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

垃圾收集器如何跟踪所有活动对象?

垃圾收集涉及遍历已分配对象列表(特定代中的所有对象或对象)并确定哪些对象可达.

  1. 这个清单是如何保持的?GC语言的运行时是否保留了所有对象的巨大列表?

  2. 另外,根据我的理解,GC涉及遍历调用堆栈以查找对象引用 - 算法如何区分GC-able指针和原始数据?

garbage-collection

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

如何在iOS 7+上更改UIBarButtonItem的背景颜色?

我想指出UIBarButtonItem通过改变背景颜色来打开或关闭特定的东西.Mobile Safari使用此功能来指示隐私浏览是打开还是关闭:

离 上

我怎么能这样做,因为没有backgroundColor财产UIBarButtonItem

uibarbuttonitem ios

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

在调试Swift代码时,我是否可以获得仅给定其地址的对象的类型引用?

在LLDB中调试Objective-C代码时,我经常使用它们的地址创建引用内存中对象的变量.例如:

(lldb) po self.view
<UIView: 0x7ff5f7a18430; frame = (0 64; 320 504); autoresize = W+H; layer = <CALayer: 0x7ff5f7a192e0>>
(lldb) e CALayer* $layer = (CALayer*) 0x7ff5f7a192e0
(lldb) e $layer.borderWidth
(CGFloat) $17 = 0
Run Code Online (Sandbox Code Playgroud)

鉴于对象的类型及其在内存中的地址,我能够检查和操作它.

调试Swift代码时这是不可能的吗?

pointers objective-c ios lldb swift

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

如何创建饼图,其中元素可以属于多个切片?

我试图将一些数据可视化为饼图.我的数据被构造为(Season, Int)元组列表,其中整数表示特定季节可用的项目数.

困难在于一个项目可以在多个季节:一个项目可以在秋季和冬季都有效.

是否可以将此信息显示为饼图?在计算百分比时,不清楚分母应该是什么,因为计数的总和可能大于项目总数.

作为一个让它更清晰的例子,假设我有10个项目.有效的数据集可能是:

  • (秋天,4)
  • (冬天,5)
  • (夏天,3)
  • (春天,10)

这里代表的项目总数是22,但实际上只有10项.

计算下降百分比4 / 10并不合理,但两者都没有4 / 22.

这些数据是否与饼图(或其他面向百分比的图表)不兼容?

charts data-visualization graph-visualization pie-chart

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

Xcode方法导航

在Xcode 4中,我可以按Ctrl-6获取当前文件中所有方法的列表.

问题是,如果我在实现文件的顶部声明了私有方法,请说:

@interface Foo ()

-(void)tap:(id)sender;

@end

@implementation Foo

...

-(void)tap:(id)sender
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后在方法列表可见时开始输入"tap"将只需要我的声明,因为它首先出现在文件中,当我真正想要的是实现时.

有没有办法从方法列表中排除这些声明,还是我需要求助于单独的Foo.hFoo+Private.h标题?

谢谢!

xcode

11
推荐指数
2
解决办法
7555
查看次数

如何在iOS 7上使用带有通用故事板的popover segues?

我正在从硬编码布局转移到Xcode 6中可用的新通用故事板系统.能够创建一个故事板,通过自动布局的魔力,可以在iPhone和iPhone上运行,这很棒. iPad.我的理解是,通用故事板与iOS 7向后兼容.

但是,我遇到了使用popover segues的问题.在iOS 8上,新的"Present as Popover"segue将在iPad界面上显示为弹出式窗口,并在iPhone界面上显示为模态视图控制器.这正是我想要的行为,但是当我在iOS 7上运行我的通用故事板时,每当我尝试使用popover segue时,应用程序都会崩溃.这是我收到的错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[UIPopoverController initWithContentViewController:] called when not 
running under UIUserInterfaceIdiomPad.'
Run Code Online (Sandbox Code Playgroud)

这有点烦人,因为我不想为每个UI成语使用单独的故事板.

看起来这些是我的选择:

  • 创建一个子类UIStoryboardSegue,它将在iPad上显示弹出窗口并在iPhone上显示模态视图.这需要手动更改我的应用程序中所有popover segues的类.
  • 从每个条形按钮项目,表格单元格等中创建两个segue - 一个是纯粹的'Popover'segue,另一个是纯粹的'Modal'segue.在这种情况下,我将无法控制 - 拖动到下一个屏幕,并将不得不创建自定义操作方法,将根据当前的UI惯用法调用正确的segue.
    • 放弃通用故事板并创建特定于设备的故事板,直到我可以向用户请求iOS 8.

这些都不是很好的选择,所以我想知道:我还有其他选择吗?我错过了我提出的解决方案的任何问题吗?

storyboard ipad ios ios-universal-app

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