如何添加一个Dictionary
到另一个Dictionary
使用Swift
?
我正在使用该AlamoFire
库发送JSON
到REST server
.
字典1
var dict1: [String: AnyObject] = [
kFacebook: [
kToken: token
]
]
Run Code Online (Sandbox Code Playgroud)
字典2
var dict2: [String: AnyObject] = [
kRequest: [
kTargetUserId: userId
]
]
Run Code Online (Sandbox Code Playgroud)
如何将两个词典组合成一个新词典,如下所示?
let parameters: [String: AnyObject] = [
kFacebook: [
kToken: token
],
kRequest: [
kTargetUserId: userId
]
]
Run Code Online (Sandbox Code Playgroud)
我试过dict1 += dict2
但得到了编译错误.
提前致谢!
使用SwiftyJSON
如何将以下JSON数组解析为Swift [String]
?
{
"array": ["one", "two", "three"]
}
Run Code Online (Sandbox Code Playgroud)
我试过这段代码,但它对我不起作用:
for (index: String, obj: JSON) in json["array"] {
println(obj.stringValue)
}
Run Code Online (Sandbox Code Playgroud)
处理这个问题的最佳方法是什么?谢谢.
我试图用来UIPopoverPresentationController
显示一个popover
不占用整个屏幕的东西.我跟着许多不同的教程没有运气.
这是我的代码.它正确地实例化了ViewController
它,但它占据了整个屏幕而不是我定义的更小的屏幕preferredContentSize
.
func showPopover() {
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("PopupTimePickerViewController") as PopupTimePickerViewController
vc.modalPresentationStyle = .Popover
vc.preferredContentSize = CGSizeMake(200, 100)
if let presentationController = vc.popoverPresentationController {
presentationController.delegate = self
presentationController.permittedArrowDirections = .Up
presentationController.sourceView = self.view
presentationController.sourceRect = CGRectMake(0, 0, 50, 50)
self.presentViewController(vc, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
以正确答案更新9/27/16
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
Run Code Online (Sandbox Code Playgroud) 当我将浏览器的大小减小到XS大小时,使用Twitter Bootstrap.这是我的页脚.我有text-right
处理剩余屏幕尺寸的属性,但在XS上,它在堆叠后仍然与右边对齐.
如何text-right
在XS屏幕尺寸上没有这个?
<footer>
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-12 copyright">
<p>© 2014 LFDate. All rights reserved.</p>
</div>
<div class="col-md-6 col-sm-6 col-xs-12">
<ul class="list-inline text-right">
<li><p><a href="#">Blog</a></p></li>
<li><p><a href="#">Press</a></p></li>
<li><p><a href="#">Jobs</a></p></li>
<li><p><a href="#">Contact</a></p></li>
</ul>
</div>
</div>
</div>
</footer>
Run Code Online (Sandbox Code Playgroud) 我在尝试编译时收到以下两条错误消息:
/Users/dericw/coding/myApplication/lfdate/android/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/23.2.1/res/values-v23/values-v23.xml
Error:(3, 5) No resource found that matches the given name (at 'cardBackgroundColor' with value '?android:attr/colorBackgroundFloating').
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/dericw/Library/Android/sdk/build-tools/23.0.2/aapt'' finished with non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)
然后Android Studio v23/values-23.xml
以这种风格打开:
<style name="CardView" parent="Base.CardView">
<item name="cardBackgroundColor">?android:attr/colorBackgroundFloating</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但我没有在我的应用程序中的任何地方定义.这是一个生成的文件,它给了我错误.我很难解决如何解决这个问题?以前有没有人遇到过这个?我该如何解决?
项目构建文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.google.gms:google-services:2.0.0-alpha6'
}
}
allprojects {
repositories {
jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)
应用构建文件
buildscript {
repositories {
mavenCentral()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies …
Run Code Online (Sandbox Code Playgroud) android build-tools android-support-library android-cardview
在列的中间垂直对齐文本的最佳/正确方法是什么?图像高度在CSS中静态设置.
我尝试过设置一个外部div display: table
和一个内部div display: table-cell
,vertical-align: middle
但这也不起作用.
HTML
<section id="browse" class="browse">
<div class="container">
<div class="row">
<div class="col-md-5 col-sm-5">
<h2 class="text-left">Link up with other gamers all over the world who share the same tastes in games.</h2>
</div>
<div class="col-md-1"></div>
<div class="col-md-6 col-sm-7 animation_container">
<img id="animation_img2" class="animation_img animation_img2" src="images/section2img2.png"/>
<img id="animation_img1" class="animation_img animation_img1" src="images/section2img1.png"/>
</div>
</div>
</div>
</section>
Run Code Online (Sandbox Code Playgroud)
CSS
.browse .container, .blind_dating .container { padding-bottom: 0; }
.animation_container { position: relative; }
.browse .animation_container { height: 430px; } …
Run Code Online (Sandbox Code Playgroud) html css vertical-alignment twitter-bootstrap twitter-bootstrap-3
我开始学习Swift语言,并且无法绕过Protocols,Structs和Classes.
我来自Android方面的编程,所以我相信Swift Protocols基本上都是Java接口?
每种方法的适当用例是什么?
我创建了一个自定义类来处理音频录制/播放并将其放入Protocol
该类中.我Protocol
在一个UIViewController
类中实现了它,并setDelegate
为我的AudioHelper类调用了我的方法.
我收到一个与我有关的编译错误init()
.不完全确定如何摆脱错误:
use of 'self' in method call 'setupAudioSession' before super.init initializes self
override init() {
setupAudioSession()
super.init()
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?为什么我必须覆盖init()?
我的AudioHelper课程
import Foundation
import AVFoundation
class AudioHelper: NSObject, AVAudioRecorderDelegate {
var audioSession: AVAudioSession?
var audioRecorder: AVAudioRecorder?
var delegate: AudioRecorderProtocol?
class var sharedInstance: AudioHelper {
struct Static {
static var instance: AudioHelper?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = AudioHelper()
}
return Static.instance!
}
override init() { …
Run Code Online (Sandbox Code Playgroud) NSPredicate
在更新Core Data
记录时似乎我的工作不正常.在执行获取请求时,同样NSPredicate
可以正常工作.
当我这样做时Batch Update
,它只是创建新的重复记录而不是按预期覆盖现有的记录.为什么哦为什么?
这是我的代码进行更新:
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
lazy var managedObjectContext : NSManagedObjectContext? = {
if let managedObjectContext = self.appDelegate.managedObjectContext {
return managedObjectContext
}
else {
return nil
}
}()
func doesMessageExist(id: String) -> Bool {
let fetchRequest = NSFetchRequest(entityName: "ChatMessage")
let predicate = NSPredicate(format: "id == %@", id)
fetchRequest.predicate = predicate
fetchRequest.fetchLimit = 1
let count = managedObjectContext!.countForFetchRequest(fetchRequest, error: nil)
return (count > 0) ? true : false
} …
Run Code Online (Sandbox Code Playgroud) 我正在使用DownloadManager
从我们的服务器下载图像,我将文件放在externalFilesDir
.
我发送广播意图因为我不希望这些下载的图像出现在图库中.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + context.getExternalFilesDir(null))));
Run Code Online (Sandbox Code Playgroud)
我之前只在我的Galaxy S3 Jelly Bean 4.3上测试了它并且它正在工作,但是当我测试它时KitKat 4.4
它崩溃了应用程序.
有没有更好的方法可以不从DownloadManager下载的文件没有出现在电话库中?
堆栈跟踪
06-05 17:34:41.940: E/AndroidRuntime(15410): FATAL EXCEPTION: main
06-05 17:34:41.940: E/AndroidRuntime(15410): Process: com.walintukai.lfdate, PID: 15410
06-05 17:34:41.940: E/AndroidRuntime(15410): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=com.walintukai.lfdate (has extras) } in com.walintukai.lfdate.SocketIOService$1@42359f40
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Handler.handleCallback(Handler.java:733)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Handler.dispatchMessage(Handler.java:95)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Looper.loop(Looper.java:136)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.app.ActivityThread.main(ActivityThread.java:5057)
06-05 17:34:41.940: E/AndroidRuntime(15410): at …
Run Code Online (Sandbox Code Playgroud) ios ×6
swift ×5
android ×2
css ×2
html ×2
json ×2
protocols ×2
build-tools ×1
class ×1
core-data ×1
delegates ×1
dictionary ×1
nspredicate ×1
popover ×1
struct ×1
text-align ×1
uipopover ×1
xcode ×1