小编Isu*_*uru的帖子

如何使用NSDecimalNumber?

我正在构建一个需要对钱进行计算的应用程序.

我想知道如何正确使用NSDecimalNumber,尤其是如何从整数,浮点数和双精度初始化它?

我发现只使用这种-decimalNumberWithString:方法很容易.-initWith...不鼓励使用这些方法,只留下带有尾数的方法,但从来没有使用我之前使用过的7种语言中的任何一种语言,所以我不知道是什么放在那里......

math cocoa

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

尝试在Swift 3中保存自定义对象时尝试插入非属性列表对象

我有一个符合NSCoding协议的简单对象.

import Foundation

class JobCategory: NSObject, NSCoding {
    var id: Int
    var name: String
    var URLString: String

    init(id: Int, name: String, URLString: String) {
        self.id = id
        self.name = name
        self.URLString = URLString
    }

    // MARK: - NSCoding
    required init(coder aDecoder: NSCoder) {
        id = aDecoder.decodeObject(forKey: "id") as? Int ?? aDecoder.decodeInteger(forKey: "id")
        name = aDecoder.decodeObject(forKey: "name") as! String
        URLString = aDecoder.decodeObject(forKey: "URLString") as! String
    }

    func encode(with aCoder: NSCoder) {
        aCoder.encode(id, forKey: "id")
        aCoder.encode(name, forKey: "name")
        aCoder.encode(URLString, forKey: …
Run Code Online (Sandbox Code Playgroud)

nsuserdefaults nscoding ios swift swift3

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

从初始化程序返回而不初始化所有存储的属性

我有一个像这样的简单课程.

public class User {
    let id: Int
    let firstName: String
    let lastName: String
    let email: String?

    init(id: Int, firstName: String, lastName: String) {
        self.id = id
        self.firstName = firstName
        self.lastName = lastName
    }
}
Run Code Online (Sandbox Code Playgroud)

这在以前的Swift版本中编译得很好.在Swift 1.2中,我得到以下编译错误.

从初始化程序返回而不初始化所有存储的属性

为什么这样,我该如何解决?

class ios swift

36
推荐指数
5
解决办法
3万
查看次数

刷新配置文件时,XCode"团队中的项目太少"错误

我正在尝试构建我的应用程序.我已经安装了我的团队设置的配置文件.我已经安装了我的开发人员证书和WWDR证书.但是,当我刷新我的配置文件库时,它会抛出此错误:

在此输入图像描述

我不知道该怎么做.

xcode ios provisioning-profile

34
推荐指数
2
解决办法
3万
查看次数

在iOS中使用MVVM

我是一名iOS开发人员,我在项目中使用Massive View控制器,因此我一直在寻找一种更好的方法来构建我的项目,并且遇到了MVVM(Model-View-ViewModel)架构.我一直在用iOS阅读很多MVVM,我有几个问题.我将用一个例子来解释我的问题.

我有一个名为的控制器LoginViewController.

LoginViewController.swift

import UIKit

class LoginViewController: UIViewController {

    @IBOutlet private var usernameTextField: UITextField!
    @IBOutlet private var passwordTextField: UITextField!

    private let loginViewModel = LoginViewModel()

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func loginButtonPressed(sender: UIButton) {
        loginViewModel.login()
    }
}
Run Code Online (Sandbox Code Playgroud)

它没有Model类.但我确实创建了一个名为LoginViewModel放置验证逻辑和网络调用的视图模型.

LoginViewModel.swift

import Foundation

class LoginViewModel {

    var username: String?
    var password: String?

    init(username: String? = nil, password: String? = nil) {
        self.username = username
        self.password = password
    }

    func validate() {
        if username == nil || …
Run Code Online (Sandbox Code Playgroud)

controller model mvvm viewmodel ios

34
推荐指数
2
解决办法
8698
查看次数

无法通过CoreSimulator spawn启动IBCocoaTouchImageCatalogTool

我有一个从互联网上下载的Xcode项目,所以我不知道用哪个Xcode版本来编写它但语言是Swift 2.我在Xcode 7.1 beta 1中打开它,我得到以下编译时错误.

无法通过CoreSimulator spawn启动IBCocoaTouchImageCatalogTool

在此输入图像描述

我删除了DerviedData foler,清理并多次构建项目.尝试将项目转换为最新的Swift语法,但它说没有什么可以转换的.

我完全没有想法了.建议?

xcode ios swift2 xcode7.1beta

28
推荐指数
4
解决办法
8099
查看次数

在Xcode 6中开发通用

我安装了Xcode 6 beta,我正在尝试开发通用应用程序.在Xcode 6之前,您必须为iPad和iPhone创建2个单独的故事板,您可以在部署信息中进行设置.

在此输入图像描述

在Xcode 6中,似乎分离已经消失.没有2个选项卡可单独设置故事板.

在此输入图像描述

但是当您创建故事板时,系统会要求您选择设备系列.

在此输入图像描述

有人可以解释Xcode 6中发生了什么吗?

谢谢.

iphone ipad ios xcode5 xcode6

27
推荐指数
1
解决办法
1万
查看次数

以编程方式设置约束

我正在试验如何使用UIScrollView.经过多次麻烦,我终于掌握了它.但现在我似乎遇到了另一个障碍.

在这个简单的应用程序,我有一个滚动视图与和,以便它的工作,我必须设置视图的底部空间,所描述的滚动型约束,以0 在这里,它工作正常.我是通过IB做的.

现在我遇到了一个必须以编程方式完成该部分的场景.我在方法中添加了以下代码viewDidLoad.

NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view
                                                                             attribute:NSLayoutAttributeBottom
                                                                             relatedBy:NSLayoutRelationEqual
                                                                                toItem:self.scrollView
                                                                             attribute:NSLayoutAttributeBottom
                                                                            multiplier:1.0
                                                                              constant:0.0];
[self.view addConstraint:bottomSpaceConstraint];
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.它在控制台窗口中输出以下消息,我不知道该怎么做.

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

有人可以告诉我该怎么做?我还在这里附加了一个演示项目,以便您可以更好地了解该问题.

更新:

首先感谢您的回复.使用答案中提到的方法,我能够使它工作.然而,它的情况略有不同.现在我正在尝试以编程方式将视图加载到viewcontroller.

如果我可以进一步解释.有2个视图控制器.第一个是a UITableViewController和第二个a UIViewController.里面那个UIScrollView.还有多个UIViews和一些视图的高度超过屏幕的正常高度.

UITableViewController显示选项列表.基于用户的选择,尤其是UIView在大量的出将被装载到UIViewControllerUIScrollView.

在这种情况下,上述方法不起作用.滚动没有发生.我是否必须做一些不同的事情,因为我是单独加载视图的?

我在这里上传了一个演示项目,以便您可以看到它的实际效果.请参阅表格视图列表中的Email.xib并选择电子邮件.

objective-c uiscrollview uiviewcontroller ios nslayoutconstraint

26
推荐指数
3
解决办法
7万
查看次数

[NSObject:AnyObject]?' 在Xcode 6 beta 6中没有名为'subscript'的成员

我使用下面几行代码行来获取屏幕上显示的键盘框架.我已注册UIKeyboardDidShowNotification通知.

func keyboardWasShown(notification: NSNotification) {
    var info = notification.userInfo
    var keyboardFrame: CGRect = info.objectForKey(UIKeyboardFrameEndUserInfoKey).CGRectValue()
}
Run Code Online (Sandbox Code Playgroud)

这曾经在测试版5中工作.我下载了最新的Xcode 6版本,它是beta 6,这个错误发生在第二行.

'[NSObject:AnyObject]?' 没有名为'objectForKey'的成员

经过一些谷歌搜索,我遇到了这个解决方案.我改变了它,

var keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue()
Run Code Online (Sandbox Code Playgroud)

但现在似乎也已经过时了.因为我现在得到这个错误.

'[NSObject:AnyObject]?' 没有名为'下标'的成员

我无法弄清楚这个错误或如何解决它.

dictionary ios swift xcode6-beta6

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

更改DataGridView标题单元格的文本对齐和字体大小

我正在尝试更改文本对齐方式和DataGridView的字体大小.所有列都是在运行时以编程方式创建的.这是代码..

private void LoadData()
{
    dgvBreakDowns.ColumnCount = 5;
    dgvBreakDowns.Columns[0].Name = "Breakdown No";
    dgvBreakDowns.Columns[1].Name = "Breakdown Type";
    dgvBreakDowns.Columns[2].Name = "Machine Type";
    dgvBreakDowns.Columns[3].Name = "Date";
    dgvBreakDowns.Columns[4].Name = "Completed";

    dgvBreakDowns.Columns[4].Visible = false;

    foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)
    {
        header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
    }
}
Run Code Online (Sandbox Code Playgroud)

LoadData()在Form的构造函数中调用此方法.列已创建,但其标题更改不适用.我认为这是因为我的循环中有一个缺陷我foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)?不确定.我尝试将其更改为,dgvBreakDowns.Columns并获得InvalidCastException.如何选择标题单元格以应用这些更改?

我有另一个小问题.当我运行程序时,它看起来像这样.

在此输入图像描述

请注意,默认情况下会选择第一个Cell,因此它显示为Blue.当然它不会影响任何东西,但它看起来有点丑陋和不整洁.可以阻止它选择那样的Cell吗?

c# datagridview

22
推荐指数
3
解决办法
6万
查看次数