我想UIAlertController与提出警告UIImageView在ActionSheet.但是,当我运行应用程序时,它正在终止.
这是我的代码:
UIAlertController *alert = [UIAlertController
alertControllerWithTitle:@"Title"
message:@"Welcome"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okButton = [UIAlertAction
actionWithTitle:OK
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
}];
[alert addAction:okButton];
UIImageView *imgv = [[UIImageView alloc]initWithFrame:CGRectMake(20,20,50,50)];
imgv.image = [UIImage imageNamed:@"kaga.jpg"];
[alert setValue:imgv forKey:@"image"];
[self presentViewController:alert animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud) 我已将广告GoogleSignIn连播的数量从4 更新为5,现在不再提供正确的取消错误。
因此,一旦弹出窗口出现,我按“取消”。
现在AppAuth,GoogleSignIn从版本5开始的基础框架将适当的取消错误传递给GoogleSignIn (org.openid.appauth.general错误-3)。而是GoogleSignIn将其包装为未知错误(com.google.GIDSignIn -1),以使您无法再正确捕获取消信息:
来自GIDSignInDelegate的方法:
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
Run Code Online (Sandbox Code Playgroud)
该错误说明:
Domain = com.google.GIDSignIn代码= -1“操作无法完成。(org.openid.appauth.general错误-3。)” UserInfo = {NSLocalizedDescription =操作无法完成。(org.openid.appauth.general错误-3。)}
我有快速的代码:
protocol ParentProtocol {
// stuff
}
protocol ChildProtocol: ParentProtocol {
// additional stuff
}
protocol FooProtocol {
var variable: ParentProtocol? { get }
}
class Foo:FooProtocol {
var variable: ChildProtocol?
}
Run Code Online (Sandbox Code Playgroud)
我有编译器错误:
类型'Foo'不符合协议'FooProtocol'
我知道,根据FooProtocol,变量类型必须是ParentProtocol类型.另一方面ChildProtocol继承自ParentProtocol,所以它也是一个ParentProtocol
是否有任何解决方案以这种方式使用协议继承?
当我尝试在Xcode 9中调试视图层次结构时,我在控制台输出中收到此警告.
异常收集视图层次结构信息 - [UITextView _firstBaselineOffsetFromTop]仅在使用自动布局时有效
我不确定它意味着什么,我看不到视图层次结构.
我在将通用类型的结构放入一个数组时遇到问题。我知道Swift会将Array的元类型转换为具体类型,这就是冲突。我试图找到其他解决方案,但我认为需要您的帮助。
在这里,我定义了结构和协议:
protocol ItemProtocol {
var id: String { get }
}
struct Section<T: ItemProtocol> {
var items: [T]
var renderer: Renderer<T>
}
struct Renderer<T> {
var title: (T) -> String
}
Run Code Online (Sandbox Code Playgroud)
这里有两个实现的示例结构ItemProtocol:
struct Book: ItemProtocol {
var id: String
var title: String
}
struct Car: ItemProtocol {
var id: String
var brand: String
}
Run Code Online (Sandbox Code Playgroud)
这是我设置部分的方式:
let book1 = Book(id: "1", title: "Foo")
let book2 = Book(id: "2", title: "Bar")
let books = [book1, book2]
let bookSection = …Run Code Online (Sandbox Code Playgroud) 我有不同的故事板叫做Main,tabBar,home,map等.在tabBar的故事栏中,我使用了SWRevealViewController视图并作为初始视图启动.在主要的Storyboard中,只有两个用于登录和注册控制器.
我的问题是当用户注销并返回时它自动进入主屏幕而不是登录屏幕[此问题是由于SWRevealViewController是初始视图控制器].
我试过这里的代码:在符号视图控制器中
在viewDidAppear中检查firebase中是否有可用的用户
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if API.User.CURRENT_USER != nil {
// segue to the Tab Bar Controller
self.performSegue(withIdentifier: "signInToTabBar", sender: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
登录动作:
@IBAction func SignInButton(_ sender: Any) {
view.endEditing(true)
guard
let email = emailTextField.text, !email.isEmpty,
let password = passwordTextField.text, !password.isEmpty
else {
self.showErrorAlert(message: "Username or email or passowrd should not be empty")
return
}
// show the progress to the user
ProgressHUD.show("Starting sign-in...", interaction: false)
// use the signIn class …Run Code Online (Sandbox Code Playgroud) xcode ios swrevealviewcontroller swift firebase-authentication
我正在尝试使用Xcode 11 beta 6和iOS 13 beta 8构建我的应用程序,但是一旦它开始运行,它将引发此错误:
由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“在UIApplication上名为-statusBar或-statusBarWindow的应用程序:由于不再有状态栏或状态栏窗口,因此必须更改此代码。而是在窗口场景上使用statusBarManager对象。'
什么是窗口场景,如何使用statusBarManager?
而且我不确定这是否相关,但是我没有使用any SwiftUI。
我尝试重新分配引用NSLayoutConstraint.
class ViewController: UIViewController {
@IBOutlet weak var myConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
exchangeConstraint(&myConstraint)
}
}
extension UIViewController {
func exchangeConstraint(_ constraint: inout NSLayoutConstraint) {
let spacing = constraint.constant
view.removeConstraint(constraint)
constraint = view.topAnchor.constraint(equalTo: anotherView.topAnchor, constant: spacing)
view.addConstraint(constraint)
}
}
Run Code Online (Sandbox Code Playgroud)
但在这里它给了我错误:
exchangeConstraint(&myConstraint)
-------------------^
Cannot pass immutable value of type 'NSLayoutConstraint' as inout argument
Run Code Online (Sandbox Code Playgroud)
我不明白的是它为什么说不可变值,而约束被声明为变量,而不是常量.
我有一个后台任务,应该返回一系列课程,然后将其发送到苹果手表。didReceiveMessage我正在通过调用内部任务WatchConnectivity。
后台任务需要执行一些操作,例如打开领域数据库、查询结果和访问文档目录,然后将响应返回到课程字典。当手表输出其获取的课程数据时,该逻辑似乎有效。问题是我认为后台任务实际上并没有调用该方法getWatchCourses()
DispatchQueue.global().async {
var foundCourses = [[String : Any]]()
let application = UIApplication.shared
backgroundTask = application.beginBackgroundTask(withName: "app.test.getCourses") {
let watchModel = WatchCourseModel()
let courses = watchModel.getWatchCourses()
print("Courses: \(courses)")
foundCourses.append(contentsOf: courses)
}
replyHandler(["response": foundCourses])
application.endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid
}
Run Code Online (Sandbox Code Playgroud)
如果结果是硬编码的,这也不起作用getWatchCourses()。应用程序可以在后台执行此逻辑吗?或者它应该工作吗?
还值得指出的是,网上没有任何地方记录了这一点,他们总是指将简单的文本响应发送回手表,而不是处理器密集型的东西:(
谢谢
我正在处理一个应该在 iOS 11 和 12 上工作的聊天。在 iOS 12 上一切都按预期工作。但是,在 iOS 11 上,我遇到了键盘出现后表格视图内容大小增加(无单元格)的问题。额外高度的数量与键盘高度相匹配。
这是一个演示,左边是 iOS 11,右边是 iOS 12。在 iOS 12 上一切正常。当键盘出现时,请注意 iOS 11 上表格视图的底部。
-= 视图控制器
+= 视图
- UINavigationViewController
- UIViewController // Controlling contentInsets, contentOffset of the tableView
+ UIView
- UITableViewController
+ UITableView
- UIViewController // Controlling the text input bar at the bottom
+ ... // Other views
+ UITextView
Run Code Online (Sandbox Code Playgroud)
表视图的锚点等于其超视图的锚点。所以全屏,忽略安全区域。所以当键盘出现时,框架不会改变,但底部的内容会插入。
我已经设置了 tableView.contentInsetAdjustmentBehavior = .never
这就是我在键盘出现时计算表格视图的插入和偏移的方式。这很复杂,因为有几个场景应该有不同的行为。当键盘消失时,以及当文本输入的高度发生变化时,也会有类似的复杂计算。我总是想根据视图框架的变化向上或向下滚动表格视图。
@objc func handleKeyboardWillShowNotification(_ notification: NSNotification) { …Run Code Online (Sandbox Code Playgroud) ios ×8
swift ×8
xcode ×2
arrays ×1
generics ×1
inout ×1
ios11 ×1
ios13 ×1
objective-c ×1
uiimageview ×1
uiscrollview ×1
uistatusbar ×1
uitableview ×1
uiwindow ×1
watchkit ×1