小编Bry*_*hen的帖子

如何使用docker-compose重新启动单个容器

我有一个docker-compose.yml包含4个容器的文件:redis,postgres,api,worker

在开发worker期间,我经常需要重新启动它才能应用更改.有没有什么好方法可以重新启动容器(例如worker)而无需重新启动其他容器?

docker docker-compose

277
推荐指数
10
解决办法
14万
查看次数

Swift - 编码URL

如果我编码这样的字符串:

var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)

它不会逃避斜线/.

我搜索并找到了这个Objective C代码:

NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                        NULL,
                        (CFStringRef)unencodedString,
                        NULL,
                        (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                        kCFStringEncodingUTF8 );
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来编码URL,如果没有,我如何在Swift中编写它?

urlencode ios swift

274
推荐指数
11
解决办法
20万
查看次数

使用Swift if let with logical AND operator &&

我们知道我们可以使用if let语句作为速记来检查可选的nil然后解包.

但是,我想使用逻辑AND运算符将其与另一个表达式相结合&&.

因此,例如,在这里,我执行可选链接以解包并可选地将我的rootViewController向下转换为tabBarController.但是我没有嵌套if语句,而是将它们组合起来.

if let tabBarController = window!.rootViewController as? UITabBarController {
    if tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
 }
Run Code Online (Sandbox Code Playgroud)

综合给予:

if let tabBarController = window!.rootViewController as? UITabBarController &&
    tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
}
Run Code Online (Sandbox Code Playgroud)

上面给出了编译错误使用未解析的标识符'tabBarController'

简化:

if let tabBarController = window!.rootViewController as? UITabBarController && true {
   println("do stuff")
}
Run Code Online (Sandbox Code Playgroud)

这给出了编译错误条件绑定中的Bound值必须是Optional类型.尝试了各种语法变体后,每个都会产生不同的编译错误.我还没有找到订单和括号的获胜组合.

所以,问题是,是否可能,如果是这样,什么是正确的语法?

请注意,我想与做这个if说法不是一个switch语句或三元?运营商.

expression swift

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

Browserify,Babel 6,Gulp - 扩展运算符上的意外标记

我正在尝试让我的Browserify/Babelify/Gulp在我的项目中工作,但它不会占用传播操作符.

我从gulpfile中得到了这个错误:

[SyntaxError: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js: Unexpected token (16:8) while parsing file: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js]
Run Code Online (Sandbox Code Playgroud)

这是我的gulpfile.js

var gulp = require('gulp');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var buffer = require('vinyl-buffer');
var babelify = require('babelify');

gulp.task('build', function () {
  return browserify({entries: './src/client/app.js', extensions: ['.js'], debug: true})
    .transform(babelify, {presets: ['es2015', 'react']})
    .bundle()
    .on('error', function (err) {
      console.error(err);
      this.emit('end');
    })
    .pipe(source('app.min.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(uglify())
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./public/js'));
});

gulp.task('default', ['build']);
Run Code Online (Sandbox Code Playgroud)

我试图创建一个.babelrc文件,但它做同样的事情.当我删除传播操作符时,我的脚本工作.

这是发生Unexpected令牌的文件(非常简单).

import utils from '../utils/consts';

const …
Run Code Online (Sandbox Code Playgroud)

javascript browserify ecmascript-6 gulp babeljs

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

如何创建可以在Key中保存任何内容的Dictionary?或它能够容纳的所有可能的类型

我想创建一个Dictionary不限制键类型(如NSDictionary)

所以我试过了

var dict = Dictionary<Any, Int>()
Run Code Online (Sandbox Code Playgroud)

var dict = Dictionary<AnyObject, Int>()
Run Code Online (Sandbox Code Playgroud)

造成

error: type 'Any' does not conform to protocol 'Hashable'
var dict = Dictionary<Any, Int>()
           ^
<REPL>:5:12: error: cannot convert the expression's type '<<error type>>' to type '$T1'
var dict = Dictionary<Any, Int>()
           ^~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

好的,我会用的 Hashable

var dict = Dictionary<Hashable, Int>()
Run Code Online (Sandbox Code Playgroud)

error: type 'Hashable' does not conform to protocol 'Equatable'
var dict = Dictionary<Hashable, Int>()
           ^
Swift.Equatable:2:8: note: '==' requirement refers to …
Run Code Online (Sandbox Code Playgroud)

swift

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

swift编程NSErrorPointer错误等

var data: NSDictionary = 
    NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.AllowFragments, error: error) as NSDictionary;
Run Code Online (Sandbox Code Playgroud)

这行代码给了我错误

NSError is not convertable to NSErrorPointer.
Run Code Online (Sandbox Code Playgroud)

所以我想把代码更改为:

var data: NSDictionary =
     NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.AllowFragments, error: &error) as NSDictionary;
Run Code Online (Sandbox Code Playgroud)

这会将NSError错误转换为NSErrorPointer.但后来我得到一个新的错误,无法理解它:

NSError! is not a subtype of '@|value ST4'
Run Code Online (Sandbox Code Playgroud)

nserror swift xcode6

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

如何使用Swift iOS向UIAlertView按钮添加动作

我想添加"确定"按钮以外的其他按钮,它应该只是关闭警报.我想要另一个按钮来调用某个功能.

var logInErrorAlert: UIAlertView = UIAlertView()
logInErrorAlert.title = "Ooops"
logInErrorAlert.message = "Unable to log in."
logInErrorAlert.addButtonWithTitle("Ok")
Run Code Online (Sandbox Code Playgroud)

如何在此警报中添加另一个按钮,然后允许它在点击后调用一个函数,让我们说我们想要新的按钮来调用:

 retry()
Run Code Online (Sandbox Code Playgroud)

uialertview ios swift

38
推荐指数
4
解决办法
10万
查看次数

如何在Xcode 4.2中禁用CoreData的反向关系警告?

在Xcode 3上有一个MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS设置,但我在Xcode 4.2中找不到它并试图将其设置为用户定义的构建设置无效.

我知道为什么我应该使用反向关系,但我只是因为各种原因而不想要它.

xcode core-data ios xcode4

31
推荐指数
3
解决办法
9822
查看次数

如何使用原始类型的CGPoint创建枚举?

灵感来自这个问题.Swift支持使用任何原始类型创建枚举,因此能够使用原始类型的CGPoint创建枚举将会很好.

但是这段代码不会编译

enum MyEnum : CGPoint {
    case Zero
}
Run Code Online (Sandbox Code Playgroud)

有以下错误

<REPL>:50:15: error: raw type 'CGPoint' is not convertible from any literal
enum MyEnum : CGPoint {
              ^
<REPL>:51:10: error: enum cases require explicit raw values when the raw type is not integer literal convertible
    case Zero
     ^
Run Code Online (Sandbox Code Playgroud)

那么如何使用原始类型的CGPoint声明枚举?

swift

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

SMLoginItemSetEnabled(...)GET对应物

沙盒应用程序,创建启动项,苹果建议你使用LSRegisterURL(..),并SMLoginItemSetEnabled(..)伴随着一个辅助工具.我已经设置了我想要的一切,但我想要一种方法(不存储偏好值)来获得"如果它已注册"的状态.基本上是一种执行相同操作的方法SMLoginItemGetEnabled(...).

编辑:感谢Rob Keniger的回答,这是我的最终代码:

- (BOOL)startAtLogin {
    NSDictionary *dict = (NSDictionary*)SMJobCopyDictionary(kSMDomainUserLaunchd, 
                                                            CFSTR("com.yourcompany.app"));
    BOOL contains = (dict!=NULL);
    [dict release];
    return contains;
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

23
推荐指数
2
解决办法
2744
查看次数