我有一个docker-compose.yml包含4个容器的文件:redis,postgres,api,worker
在开发worker期间,我经常需要重新启动它才能应用更改.有没有什么好方法可以重新启动容器(例如worker)而无需重新启动其他容器?
如果我编码这样的字符串:
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中编写它?
我们知道我们可以使用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语句或三元?运营商.
我正在尝试让我的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) 我想创建一个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) 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) 我想添加"确定"按钮以外的其他按钮,它应该只是关闭警报.我想要另一个按钮来调用某个功能.
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) 在Xcode 3上有一个MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS设置,但我在Xcode 4.2中找不到它并试图将其设置为用户定义的构建设置无效.
我知道为什么我应该使用反向关系,但我只是因为各种原因而不想要它.
灵感来自这个问题.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声明枚举?
沙盒应用程序,创建启动项,苹果建议你使用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) swift ×6
ios ×3
babeljs ×1
browserify ×1
cocoa ×1
core-data ×1
docker ×1
ecmascript-6 ×1
expression ×1
gulp ×1
javascript ×1
nserror ×1
objective-c ×1
uialertview ×1
urlencode ×1
xcode ×1
xcode4 ×1
xcode6 ×1