小编koe*_*oen的帖子

魔法记录添加对象,不同的上下文错误

我在我的应用程序中使用魔法记录,并希望为用户添加功能以添加"注释",这是"条目"的子项.

我添加了这段代码:

    [MagicalRecord saveWithBlock: ^(NSManagedObjectContext *localContext) {
        Note *newNote = [Note MR_createInContext: localContext];

        newNote.content = noteContent;
        newNote.name = @"User Note";

        [self.entry addNotesObject: newNote];
     }
                      completion: ^(BOOL success, NSError *error) {
                          if (error != nil)
                          {
                              // show alert
                          }
                          else if (success)
                          {
                              [[self tableView] reloadData];
                          }
                      }];
Run Code Online (Sandbox Code Playgroud)

我在最后一行上遇到的错误是"非法尝试在不同上下文中的对象之间建立关系'条目"

我尝试将'entry'和'newNote'的上下文设置为'localContext',但我仍然得到相同的错误.

我错过了什么?

core-data ios magicalrecord

3
推荐指数
1
解决办法
2139
查看次数

UITableViewCell中UILabel的模糊布局警告

我有两个UILabel彼此相邻的观点UITableViewCell.左边有一条线,右边有一条线,使用剩下的任何水平空间.两个标签距离单元顶部的距离相同.单元格的高度取决于右侧标签的高度.在某些情况下,我会在右上方和下方看到不需要的额外空间UILabel,因此它们不是顶部对齐的.再看一下,我发现两个标签都有hasAmbiguousLayout回报YES.

当我调用constraintsAffectingLayoutForAxis调试器时,我得到以下输出:

(lldb) po [0x7b769520 constraintsAffectingLayoutForAxis:0]
<__NSArrayM 0x7b6cb340>(
<NSAutoresizingMaskLayoutConstraint:0x7b76abf0 h=--& v=--& 'UIView-Encapsulated-Layout-Left' H:|-(0)-[UITableViewCellContentView:0x7b768fc0]   (Names: '|':MyTVCell:0x7b769330'MyTVCell' )>,
<NSLayoutConstraint:0x7b76b010 H:|-(15)-[UILabel:0x7b769520'Number']   (Names: '|':UITableViewCellContentView:0x7b768fc0 )>,
<NSContentSizeLayoutConstraint:0x7b769a90 H:[UILabel:0x7b769520'Number'(131)] Hug:250 CompressionResistance:750>
)
Run Code Online (Sandbox Code Playgroud)

对于位于第一个UILabel右侧的第二个UILabel,我得到这个:

(lldb) po [0x7b769710 constraintsAffectingLayoutForAxis:0]
<__NSArrayM 0x7b6cb9e0>(
<NSContentSizeLayoutConstraint:0x7b769a90 H:[UILabel:0x7b769520'Number'(131)] Hug:250 CompressionResistance:750>,
<NSAutoresizingMaskLayoutConstraint:0x7b76abf0 h=--& v=--& 'UIView-Encapsulated-Layout-Left' H:|-(0)-[UITableViewCellContentView:0x7b768fc0]   (Names: '|':MyTVCell:0x7b769330'MyTVCell' )>,
<NSLayoutConstraint:0x7b76b010 H:|-(15)-[UILabel:0x7b769520'Number']   (Names: '|':UITableViewCellContentView:0x7b768fc0 )>,
<NSLayoutConstraint:0x7b76b230 H:[UILabel:0x7b769520'Number']-(15)-[UILabel:0x7b769710'Q12472']>,
<NSLayoutConstraint:0x7b76ab90 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x7b768fc0(320)]>,
<NSLayoutConstraint:0x7b76b310 UILabel:0x7b769710'Q12472'.trailing == UITableViewCellContentView:0x7b768fc0.trailing - 15>
)
Run Code Online (Sandbox Code Playgroud)

任何人都可以根据上面的输出解释为什么这些标签有一个模糊的布局?

更新: …

uitableview uilabel ios autolayout

3
推荐指数
1
解决办法
6408
查看次数

UIPopoverPresentationController

我是新手,试图了解如何使用UIPopoverPresentationController.

我在我的应用程序中需要的是,当按下按钮时,屏幕按钮上的弹出将显示在屏幕的一半上的xib文件上.现在发生的是我设法转向第二个视图控制器,但不知道如何加载xib文件以及如何使popover成为屏幕的一半.这是我的代码

import UIKit

class BaseViewController: UIViewController , UIPopoverPresentationControllerDelegate {

    @IBAction func moveToPopoverView(sender: UIButton) {
      var popoverViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Popover") as! UIViewController
      popoverViewController.modalPresentationStyle = .Popover
      popoverViewController.preferredContentSize   = CGSizeMake(200, 200)

      let popoverPresentationViewController = popoverViewController.popoverPresentationController

      popoverPresentationViewController?.permittedArrowDirections = .Any
      popoverPresentationViewController?.delegate = self

      presentViewController(popoverViewController, animated: true, completion: nil)
    }

   override func viewDidLoad() {
      super.viewDidLoad()       
   }    
}
Run Code Online (Sandbox Code Playgroud)

xcode swift ios8 uipresentationcontroller

3
推荐指数
1
解决办法
1446
查看次数

Swift Array 仅删除具有特定值的一项

好吧,这应该不会太难,但周日早上证明我错了......

我有一个Arraywith 结构,并且只想删除一个与其 name 属性匹配的结构String。例如:

struct Person {
   let name: String
}

var myPersons =
[Person(name: "Jim"),
 Person(name: "Bob"),
 Person(name: "Julie"),
 Person(name: "Bob")]

func removePersonsWith(name: String) {
   myPersons = myPersons.filter { $0.name != name }
}

removePersonsWith(name: "Bob")
print(myPersons)
Run Code Online (Sandbox Code Playgroud)

结果是:

[Person(name: "Jim"), Person(name: "Julie")]
Run Code Online (Sandbox Code Playgroud)

但我怎样才能只删除一个鲍勃呢?

arrays swift3

3
推荐指数
1
解决办法
1478
查看次数

如何在 SwiftUI 中使用带条件检查的按钮进行导航

由于NavigationButton不再可用,我如何检查NavigationLink中的条件以便导航到另一个视图?

NavigationLink(destination: Dashboard(userName: self.userId,
                                      password: self.password), isActive: $showDashboard) {
    Button(action: {
        if self.userId.isEmpty || self.password.isEmpty {
            self.isAlert = true
        } else {
            self.showDashboard = true
        }
                       
    }) {
        Text("Submit")
            .foregroundColor(.white)
            .font(.system(size: 22))
                       
        Dashboard()
    }
    .frame(minWidth: 150, idealWidth: 300, maxWidth: 450,
           minHeight: 30, idealHeight: 40, maxHeight: 50, alignment: .center)
    .background(Color(red: 81/255, green: 221/255, blue: 182/255))
                       
    .padding([.leading, .trailing], 20)
}
Run Code Online (Sandbox Code Playgroud)

编辑:-

另外,如果用户名密码的长度超过 16,我想显示警报;如果长度超过 10,则显示不同的警报;如果长度为 0,则显示空消息警报。

navigation swiftui swiftui-navigationlink

3
推荐指数
1
解决办法
5309
查看次数

如何使故事板中的 UILabel 和 UIButton 大写

我在 Storyboard 中找不到通过标志使我的标签或按钮文本大写的方法,请检查我的 Storyboard 屏幕截图,我向您展示了没有此类标志的属性检查器:

在此处输入图片说明

xcode storyboard ios swift

3
推荐指数
1
解决办法
67
查看次数

SwiftUI Map 不以注释为中心

我使用下面的代码来加载地图,但结果出来后,地图仍然以用户位置为中心而不是注释周围,因为我必须滚动到图钉才能看到。

Map(coordinateRegion: $region, showsUserLocation: true, annotationItems: searchResults) { dest in
    MapAnnotation(coordinate: dest.coordinate, anchorPoint: CGPoint(x: 0.5, y: 0.5)) {
            MapPin(coordinate)
    }
}
Run Code Online (Sandbox Code Playgroud)

mapkit ios swift swiftui

3
推荐指数
1
解决办法
1456
查看次数

可以在iOS中实现Singleton继承

我有几个应该从某个A类继承的类.

他们每个人都应该是一个单身人士.

这可以实现吗?

singleton design-patterns ios

2
推荐指数
1
解决办法
1134
查看次数

我可以使用没有功能的Swift协议吗?

考虑这个典型的例子,有时可以在教程中看到等等(甚至在Apple的代码中):

protocol Nameable {
     var name: String {get}
}

struct Person : Nameable {
     var name: String
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这种模式的好处是什么?一旦将函数添加到协议中,我就能理解它,但对于只有一个或多个变量的协议,什么可能是一个很好的应用程序?为什么不加入name每个structclass

protocols swift

2
推荐指数
1
解决办法
100
查看次数

Swift 字符串到单字符串数组

如何将字符串转换为单个字符串数组?所以String -> [String]

如果我Array(myString)这样做,会产生一个字符数组。我尝试了 flatmap (或最新 Xcode beta 中的compactMap):

stringArray = Array(myString).flatMap { $0 as? String }
Run Code Online (Sandbox Code Playgroud)

然后我收到警告:“从‘字符’转换为不相关类型‘字符串’总是失败”并且‘print(stringArray) 结果为 []。

这可能吗?

编辑:这已经在这个问题的不接受答案中得到了回答:Convert Swift string to array

arrays string swift4

2
推荐指数
1
解决办法
6465
查看次数