小编Cap*_*GUY的帖子

如何轻松删除领域中的所有对象

我可以选择进行迁移,但我更愿意删除defaultRealm()中的所有内容.我怎么能这么容易做到?

realm.deleteObject(object)
Run Code Online (Sandbox Code Playgroud)

是唯一与.deleteObjects一起使用的函数.

我试过以下代码:

方法1

realm.deleteObjects(RLMObject.objectsInRealm(realm, withPredicate: NSPredicate(value: true)))
Run Code Online (Sandbox Code Playgroud)

方法2

        realm.deleteObjects(Dog.allObjectsInRealm(realm))
        realm.deleteObjects(Person.allObjectsInRealm(realm))
        realm.deleteObjects(Goal.allObjectsInRealm(realm))
        realm.deleteObjects(Goals.allObjectsInRealm(realm))
Run Code Online (Sandbox Code Playgroud)

两者都无法阻止迁移异常.

realm ios swift

31
推荐指数
4
解决办法
4万
查看次数

NSUserDefaults自定义对象 - 格式列表无效的属性列表:200(属性列表不能包含'CFType'类型的对象)

我必须错误地使用自定义对象NSUserDefaults.错误"属性列表格式无效:200(属性列表不能包含'CFType'类型的对象)".下面是我的代码,目标类特别有意义,因为这是我采用NSCoding协议的地方.

这段代码是全球性的.

func saveGoals (goals : [Goal]) {
    var updatedGoals = NSKeyedArchiver.archivedDataWithRootObject(goals)
    NSUserDefaults.standardUserDefaults().setObject(updatedGoals, forKey: "Goals")
    NSUserDefaults.standardUserDefaults().synchronize()
}

func loadCustomObjectWithKey() -> [Goal] {
    if let encodedObject : NSData = NSUserDefaults.standardUserDefaults().objectForKey("Goals") as? NSData {
        var encodedObject : NSData? = NSUserDefaults.standardUserDefaults().objectForKey("Goals") as? NSData
        var goal : [Goal] = NSKeyedUnarchiver.unarchiveObjectWithData(encodedObject!) as [Goal]
        return goal
    } else {
        return [Goal]()
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码位于GoalsViewController中.

class GoalsViewController: MainPageContentViewController, UITableViewDelegate, UITableViewDataSource {
    @IBOutlet var tableView: GoalsTableView!

    var cell = GoalTableViewCell()

    var goalsArray : Array<Goal> = [] //

    override …
Run Code Online (Sandbox Code Playgroud)

objective-c ios swift

12
推荐指数
1
解决办法
8659
查看次数

为Swift编码/解码枚举(Xcode 6.1)

我有

var priority : Priority! = Priority.defaultPriority

func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeInteger(priority.toRaw(), forKey: "priority") //toRaw may not yield the result I am expecting
    }

    required init(coder aDecoder: NSCoder) {
        priority = aDecoder.decodeIntegerForKey("priority") //complaining about conflicting types
    }
Run Code Online (Sandbox Code Playgroud)

枚举如下:

enum Priority : Int {
        case defaultPriority = 0
        case lowPriority = 1
        case mediumPriority = 2
        case highPriority = 3
    }
Run Code Online (Sandbox Code Playgroud)

编码/解码这个的最佳方法是什么?

enums ios swift

7
推荐指数
1
解决办法
3439
查看次数

如何使用Swift查找键盘高度

let frame = (info[UIKeyboardFrameEndUserInfoKey] as NSValue) as CGRect
Run Code Online (Sandbox Code Playgroud)

不起作用.有谁知道为什么这不能按预期运作?

错误:'NSValue'无法转换为'CGRect'

请记住以下内容:

let curve = (info[UIKeyboardAnimationCurveUserInfoKey] as NSValue) as UInt
Run Code Online (Sandbox Code Playgroud)

工作良好.

编辑:即使Apple文档表明这是一个小问题,因为Cocoa中有以下评论 UIKeyboardAnimationCurveUserInfoKey

// NSValue of CGRect
Run Code Online (Sandbox Code Playgroud)

Edit2:调试器将其定义为NSConcreteValue.如何将其转换为CGRect?

uikeyboard ios swift

5
推荐指数
1
解决办法
6295
查看次数

如何存储自定义对象数组(目标)

如何存储我在NSUserDefaults中创建的Goal类型的对象数组?(快速)

这是代码:

func saveGoalList ( newGoalList : [Goal] ){
    let updatedGoalList = newGoalList;
    NSUserDefaults.standardUserDefaults().setObject(updatedGoalList, forKey: "GoalList")
    NSUserDefaults.standardUserDefaults().synchronize()
}

class GoalsViewController: MainPageContentViewController, UITableViewDelegate, UITableViewDataSource {
    @IBOutlet var tableView: GoalsTableView!

    var cell = GoalTableViewCell()

    var goalsArray : Array<Goal> = [] //

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.delegate = self
        self.tableView.dataSource = self

        if var storedGoalList: [Goal] = NSUserDefaults.standardUserDefaults().objectForKey("GoalList") as? [Goal]{
            goalsArray = storedGoalList;
        }
        var goal = Goal(title: "Walk the Dog")
        goalsArray.append(goal)
        saveGoalList(goalsArray)

        self.tableView?.reloadData()

        tableView.estimatedRowHeight = 44.0
        tableView.rowHeight = UITableViewAutomaticDimension

        self.xpnotificationView.alpha = …
Run Code Online (Sandbox Code Playgroud)

nsuserdefaults ios swift

4
推荐指数
2
解决办法
3628
查看次数

UITextView不更改NSTextAlignment属性

self.descriptionTextView.textAlignment = NSTextAlignment.Center
        println(self.descriptionTextView.textAlignment.rawValue)
Run Code Online (Sandbox Code Playgroud)

4

表示默认的textAlignment值(NSTextAlignment.Natural).

我在故事板中创建了UITextView,并使用右侧的按钮手动将对齐设置为Center.

当我运行应用程序时,文本继续来自左侧.

有人知道为什么会这样吗?

(我使用的是最新版本的XCode,使用UITextField时似乎没有这种情况)

objective-c uikit ios swift

4
推荐指数
1
解决办法
1159
查看次数

Autolayout抱怨UIImageView的前导/尾随空间

我在故事板中有一个UICollectionViewCell,里面有一个UIImageView.

UICollectionViewCell size is width: 189, height: 239.ImageView具有以下约束:

Trailing Space to cell = 31
Leading Space to cell = 31
Bottom Space to cell =  25
Top Space to cell = 31
Run Code Online (Sandbox Code Playgroud)

运行时收到以下错误:

2014-11-28 19:53:33.934 AppName [1585:35698]无法同时满足约束条件.可能至少下列列表中的一个约束是您不想要的约束.试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它.(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)(

"<NSLayoutConstraint:0x7fa4a0d75220 H:[UIImageView:0x7fa4a0d743e0]-(31)-|   (Names: '|':UIView:0x7fa4a0d73d40 )>",
"<NSLayoutConstraint:0x7fa4a0d752c0 H:|-(32)-[UIImageView:0x7fa4a0d743e0]   (Names: '|':UIView:0x7fa4a0d73d40 )>",
"<NSAutoresizingMaskLayoutConstraint:0x7fa4a0d567a0 h=--& v=--& H:[UIView:0x7fa4a0d73d40(50)]>" )
Run Code Online (Sandbox Code Playgroud)

将尝试通过破坏约束来恢复NSLayoutConstraint:0x7fa4a0d75220 H:[UIImageView:0x7fa4a0d743e0] - (31) - | (名称:'|':UIView:0x7fa4a0d73d40)>

在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以便在调试器中捕获它.在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助.

我尝试以各种方式更改前导/尾随值(尝试偶数/奇数)但没有成功.是什么造成的?

objective-c storyboard ios swift

0
推荐指数
1
解决办法
1160
查看次数