我安装了Xcode 10 Beta 6,我正在更新所有内容,在这个过程中,我遇到了一个Fabric问题.Fabric的网站上有Xcode 10的特别说明:
当我在Xcode 10中时,我会在运行脚本上进行构建阶段,该脚本具有我的Fabric键,在该部分下面有一个+号 Input Fields
当我点击+,它会自动生成$(SRCROOT)/newInputFile,其中newInputFile自动高亮显示.
我不理解Fabric的说明.难道我复制$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)后$(SRCROOT)/我是否更换INFOPLIST_PATH与文件路径我info.plist中?
我已经尝试了所有这些选项,但Fabric仍然在Xcode 10中崩溃.我知道它是Fabric,因为我已经Fabric.with([Crashlytics.self])在我的App Delegate中注释掉了didFinishLaunchingWithOptions
我有一个在Xcode的发布版本中运行良好的应用程序.我下载了测试版,在我修复了所有的小改动后,我运行它并且它有效.我刚刚回来再次运行它,我得到一个错误说
打开"com.matthewhsingleton.Smoke"的请求失败.(null)无法为请求提供服务.
我已经退出Xcode并重新打开它,我已经重新启动了我的计算机,尝试了不同的iPhone模拟器并且都生成了相同的结果
我有一段代码在Swift 2中工作,我尝试使用xCode将代码更新到最新版本,我修复了除两个问题之外的所有内容
我有这个代码
let loginvc: LoginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! LoginVC
NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
与此配对
func keyboardWillShow(notification: NSNotification) {
constraint.constant = -100
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
func keyboardWillHide(notification: NSNotification) {
constraint.constant = 25
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
Run Code Online (Sandbox Code Playgroud)
在第一部分我现在得到一个错误说"类型'LoginViewController'没有成员'keyboardwillshow/hide'
我不明白为什么它没有看到下面的方法
有人知道这个问题的解决方案吗?
在iOS 11中,当我锁定iPhone时,我的音乐应用程序会显示锁定屏幕控件.我能够看到当前播放的歌曲和播放/暂停向前和向后跳过.但是在升级到Xcode 10/iOS 12时,我再也看不到锁定屏幕只控制日期和时间......
但是,如果我向上滑动并获得小部件屏幕(您可以在其中打开飞行模式等),我可以看到正在播放的信息.
这就是我所拥有的
在背景模式中
我已将代码更新为以下内容:
叫我的 viewDidLoad
do {
try AVAudioSession.sharedInstance().setCategory(.soloAmbient, mode: .default, options: .allowAirPlay)
print("Playback OK")
try AVAudioSession.sharedInstance().setActive(true)
print("Session is Active")
} catch {
print(error)
}
UIApplication.shared.beginReceivingRemoteControlEvents()
self.becomeFirstResponder()
Run Code Online (Sandbox Code Playgroud)
我之前没有在上一个工作版本中使用以下代码,但我添加了它,因为我发现了类似的帖子,建议我这样做
if let songInfo = self.mediaPlayer.nowPlayingItem {
nowPlayingInfoCenter.nowPlayingInfo = [
MPMediaItemPropertyTitle: songInfo.title ?? "",
MPMediaItemPropertyArtist: songInfo.artist ?? "",
MPMediaItemPropertyArtwork : songInfo.artwork?.image(at: CGSize(width: 400, height: 400)) ?? #imageLiteral(resourceName: "emptyArtworkImage")]
}
Run Code Online (Sandbox Code Playgroud)
我把断点放在do try它上面不打印任何打印功能并跳过它try
我的代码转换错了吗?
我有一个问题,我有一个div class="tasteTheRainbow",里面是img标签.一个标签特别是一个名为的png类.gA3.
现在tasteTheRainbow已经有了一个CSS背景网址,但是当你点击或点击.gA3我想要更改后台网址时.
我已经尝试了许多其他stackoverflow帖子,但没有找到解决方案.
这是我的HTML和我的CSS:
<div class="tasteTheRainbow">
<div class="greenArrow">
<img class="gA1" src="assets/arrows/down.png"/>
<img class="gA2" src="assets/arrows/in.png"/>
<img class="gA3" src="assets/arrows/left.png"/>
<img class="gA4" src="assets/arrows/out.png"/>
<img class="gA5" src="assets/arrows/right.png"/>
<img class="gA6" src="assets/arrows/up.png"/>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
.tasteTheRainbow {
background-image: url(../assets/fivePix.png);
background-repeat: repeat;
position: absolute;
background: url(../assets/tombrady1.jpg) no-repeat center center fixed !important;
-webkit-background-size: cover;
background-size: cover;
display: block !important;
}
Run Code Online (Sandbox Code Playgroud)
正如我上面提到的,我尝试过使用CSS classname:active.我也尝试了多个java脚本解决方案,他们根本不会将背景网址更改为image1到image2.
我正在阅读firebase.google的示例https://firebase.google.com/docs/database/ios/save-data#save_data_as_transactions ,我正在尝试编写自己的版本.我遇到了麻烦,因为firebase示例让我比以前更加困惑
我所要做的就是当一个人点击一个按钮时,它是++(或+ = 1)到计数而另一个按钮将其删除
有人可以帮我弄清楚如何做到这一点...上一个问题的另一个用户发布了其他语言答案的链接,我试图用快速语言写它但我失败了
我正在使用OWL Carousel并且我已对它进行编码,因此将显示一个图像,然后每隔15秒将下一个图像滑入.我已将宽度设置为屏幕的100%,因此在理论上对js进行了适当的编码应该有一个图像,一次全尺寸....但是会发生什么是它显示所有的图像相当小,然后如果我调整屏幕甚至1像素,它捕捉它应该如何.....
有关如何避免必须调整屏幕大小以使图像全尺寸的任何想法?
这是我的HTML
<div class="owl-carousel">
<img src="assets/background1.jpg" />
<img src="assets/background2.jpg" />
<img src="assets/background3.jpg" />
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的js
var owl = $('.owl-carousel');
owl.owlCarousel({
singleItem: true,
items:1,
loop:true,
margin:10,
autoplay:true,
autoplayTimeout:15000,
autoplayHoverPause:true
});
$('.play').on('click',function(){
owl.trigger('autoplay.play.owl',[1000])
})
$('.stop').on('click',function(){
owl.trigger('autoplay.stop.owl')
})
Run Code Online (Sandbox Code Playgroud) 我刚开始使用Firebase,我能够读/写/编辑/删除数据库.在我的应用程序中,我只向用户显示数据,如果他/她有权访问它.
我这样做是通过创建用户节点和另一个节点(称之为服务)并引用该用户子节点中的服务.
我以前从未使用过Firebase的安全规则,现在我想开始使用Firebase存储图像.
我正在按照教程和我的控制台说,
没有权限.无法访问存储桶..请访问Firebase控制台中的"存储"选项卡,为您的存储桶启用Firebase存储,并确保您具有足够的权限来正确配置资源
在谷歌上搜索和搜索如何设置这些安全规则我不知道什么是正确的答案.一些答案建议我在我的代码中编写方法以授予权限,但文档建议我需要在Firebase的最后完成.
这是其中一个例子
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/<your-firebase-storage-bucket>/o {
// Files look like: "user/<UID>/path/to/file.txt"
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法理解人们的答案
就像几个月前的这个
{
"rules": {
"UsersDB": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释当前的Firebase(以及iOS Swift ......如果它很重要)如何制作它以便用户1只能读/写他/她的数据/照片
firebase firebase-security firebase-realtime-database firebase-storage
我有一个使用Firebase实时数据库的iOS swift应用程序.如果到目前为止我正常使用该应用程序,我找不到任何问题.但是,我想预测边缘情况.
我试图在推送更新之前对应用程序进行压力测试,我正在做的一种方法是快速从带有tableView的VC来回到下一个VC,这是一个详细的VC.如果我多次这样做,最终tableview将显示大量重复数据.
我已经通过在我的模拟器上打开一个tableview并进入我的Firebase控制台并手动更改值并在设备上立即更改字符串来测试我的应用程序.
所以我很困惑,为什么我的tableview会显示不正确数量的孩子,如果它不断检查值应该是什么.
// MARK: Firebase Methods
func checkIfDataExits() {
DispatchQueue.main.async {
self.cardArray.removeAll()
self.ref.observe(DataEventType.value, with: { (snapshot) in
if snapshot.hasChild("cards") {
self.pullAllUsersCards()
} else {
self.tableView.reloadData()
}
})
}
}
func pullAllUsersCards() {
cardArray.removeAll()
let userRef = ref.child("users").child((user?.uid)!).child("cards")
userRef.observe(DataEventType.value, with: { (snapshot) in
for userscard in snapshot.children {
let cardID = (userscard as AnyObject).key as String
let cardRef = self.ref.child("cards").child(cardID)
cardRef.observe(DataEventType.value, with: { (cardSnapShot) in
let cardSnap = cardSnapShot as DataSnapshot
let cardDict = cardSnap.value as! [String: AnyObject] …Run Code Online (Sandbox Code Playgroud) 我有兴趣将 Touch ID 选项添加到我的应用程序中。我找到了很多关于如何实现它以及如何处理错误的 SO 帖子和其他文章。我的问题是,如果用户登录,然后转到首选项 VC 并(如果设备支持)启用 Touch ID....我如何从 Firebase 检索用户的电子邮件和密码...或存储它?
我可能是错的,但我无法想象 Firebase 会允许我提取用户的密码。那么,我是否只是将 VC 中的登录密码存储在一个常量中并将其从 VC 传递到 VC,以防万一用户想要启用 Touch ID?
这似乎也不是一个很好的选择..
编辑
我想澄清我的问题。
最初在我的应用程序中,用户使用 Firebase 使用电子邮件和密码登录到应用程序。稍后,如果用户想要,他/她可以启用 Touch ID,因此无需键入 johnSmith@email.com 和 abc123,它就知道该手机上的用户是 johnSmith@email.com,密码是 abc123。
我的问题是:如何检索该用户的电子邮件和密码?我的数据库中没有包含电子邮件列表的孩子,也没有密码列表。
我唯一能想到的获得用户的是以下内容
let user = FIRAuth.auth()?.currentUser
Run Code Online (Sandbox Code Playgroud)
但这足以让 Touch ID 登录吗?那只是一个随机字符串,而不是他/她的电子邮件
以及如何获取密码?