为什么我需要unwrapped在最终的return语句中解包变量?不是警卫应该处理这个吗?
func test() -> String {
let fmt = NSNumberFormatter()
let myValue:Double? = 9.50
guard let unwrapped = myValue else {
return ""
}
return fmt.stringFromNumber(unwrapped)
}
Run Code Online (Sandbox Code Playgroud)
错误:可选类型'String?'的值 没有打开; 你的意思是用'!' 要么 '?'?return fmt.stringFromNumber(unwrapped)
我只是下载并安装了 SF 字体。我在 Sketch 和 Font Book 中看到它们,但在 Xcode(Interface Builder)中没有看到。我已重新启动 Xcode,但 SF 或 San Francisco 字体仍未显示在文本工具中。
有谁知道是否需要一些特殊的东西才能让他们在 Xcode 中工作?
OS X 10.11.1
Xcode 7.1.1
我有以下字符串:
{"key1":"value1","key2":"value2,some other part of value2"}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下长语法来分割它:
var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries);
var firstEntryValue = s[0].Split(':')[1];
var secondEntryValue = s[1].Split(':')[1];
Run Code Online (Sandbox Code Playgroud)
由于这个字符串基本上是一个Dictionary<string,string>,我怎样才能将整个事物基本上拉成一行?
我见过这样的话:
var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries)
.Select(p => p.Split(':'))
.ToDictionary(split => split[0], split => split[1]);
Run Code Online (Sandbox Code Playgroud)
但它抛出并索引越界错误.是否有一些类似的语法可行?
提供默认值是使用 RemoteConfig 时的步骤之一。它通常看起来像这样:
let sefaults: [String: NSObject] = [
"key1" : "value1" as NSObject,
"key2" : "value2" as NSObject
]
FIRRemoteConfig.remoteConfig().setDefaults(defaults)
Run Code Online (Sandbox Code Playgroud)
我发现 RemoteConfig 在没有上述情况的情况下工作得很好。以上是必须的吗?还有,它在做什么?似乎是一个空操作。
以下是Electron网站(https://electron.atom.io/docs/tutorial/quick-start/)的股票代码:
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
Run Code Online (Sandbox Code Playgroud)
在Mac OS 10.12.4上,当调用上述内容时,它不会关闭应用程序.只有窗口.app.quit()在条件之上添加会关闭应用程序.他们是否留下了特定于Mac OS X的内容,阻止了应用关闭?
我可以在首选项中找到 Spring Tool Suite 使用的 Java 版本。我在哪里可以找到它正在使用的 Spring 版本?
是否有任何VS.NET插件可以格式化选择的代码进行打印或电子邮件,也是免费的?
我只获得插入数据库的第二个值.dataHold.Id有一个值,aTextField也是如此.但是,当我查看数据库时,未插入Id.下面的sqlite是否正确?
const char *sql = "insert into Userdata (Id, Name) Values(?, ?)";
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {
sqlite3_bind_int(selectstmt, dataHold.Id, 1);
sqlite3_bind_text(selectstmt, 2, [aTextField.text UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(selectstmt);
Run Code Online (Sandbox Code Playgroud) 在断点动作中,我要这样做:
@(const char *)[(NSString*)[myobject retainCount]UTF8String]@
Run Code Online (Sandbox Code Playgroud)
这给出了这个输出:
<Error: Cannot access memory at address 0x2>
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
@(NSString*)[myboject retainCount]@
Run Code Online (Sandbox Code Playgroud)
它输出一个内存地址.但如果我在代码中这样做:
NSLog(@"retain count is: %d", [myobject retainCount]);
Run Code Online (Sandbox Code Playgroud)
它给出了这个输出:
2009-04-18 09:58:48.085 myapp[80277:20b] retain count is: 1
Run Code Online (Sandbox Code Playgroud)
在断点操作中正确输出所需的语法是什么?
另外,在哪里可以找到断点操作的格式键的完整列表?
我想在Cocoa应用程序中提交以下URL并将结果保存为字符串(尽管XML可能更好):
http://translate.google.com/translate_t#en|fr|hi%20there%20all
Run Code Online (Sandbox Code Playgroud)
该页面不断返回错误.这是我的代码:
NSString *urlString = @"http://translate.google.com/translate_t#en|fr|hi%20there%20all";
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10];
NSData *urlData;
NSURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
NSString *content = [[NSString alloc] initWithBytes:[urlData bytes]
Run Code Online (Sandbox Code Playgroud)
以上导致URL变为:
http://translate.google.com/translate_t%23en%7Cfr%7Chi%2520there%2520all
Run Code Online (Sandbox Code Playgroud)
这导致了来自Google的404.如果我在没有转义的情况下尝试URL,我会返回零字节.关于如何使这项工作的任何想法?
---编辑---
问题的根源是url的值为nil.删除EscapesUsingEncoding行(第2行)并检查url的值.我在URL中的管道导致[NSURL URLWithString:urlString]; 返回零.使用十六进制值转义管道7C(http://translate.google.com/translate_t#en%7cfr%7chi%20there%20all)返回数据.但是我在NSString*内容行上再次获得零字节.