我正在构建一个需要对钱进行计算的应用程序.
我想知道如何正确使用NSDecimalNumber,尤其是如何从整数,浮点数和双精度初始化它?
我发现只使用这种-decimalNumberWithString:方法很容易.-initWith...不鼓励使用这些方法,只留下带有尾数的方法,但从来没有使用我之前使用过的7种语言中的任何一种语言,所以我不知道是什么放在那里......
我有一个符合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) 我有一个像这样的简单课程.
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中,我得到以下编译错误.
从初始化程序返回而不初始化所有存储的属性
为什么这样,我该如何解决?
我正在尝试构建我的应用程序.我已经安装了我的团队设置的配置文件.我已经安装了我的开发人员证书和WWDR证书.但是,当我刷新我的配置文件库时,它会抛出此错误:

我不知道该怎么做.
我是一名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) 我有一个从互联网上下载的Xcode项目,所以我不知道用哪个Xcode版本来编写它但语言是Swift 2.我在Xcode 7.1 beta 1中打开它,我得到以下编译时错误.
无法通过CoreSimulator spawn启动IBCocoaTouchImageCatalogTool
我删除了DerviedData foler,清理并多次构建项目.尝试将项目转换为最新的Swift语法,但它说没有什么可以转换的.
我完全没有想法了.建议?
我安装了Xcode 6 beta,我正在尝试开发通用应用程序.在Xcode 6之前,您必须为iPad和iPhone创建2个单独的故事板,您可以在部署信息中进行设置.

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

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

有人可以解释Xcode 6中发生了什么吗?
谢谢.
我正在试验如何使用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在大量的出将被装载到UIViewController同UIScrollView.
在这种情况下,上述方法不起作用.滚动没有发生.我是否必须做一些不同的事情,因为我是单独加载视图的?
objective-c uiscrollview uiviewcontroller ios nslayoutconstraint
我使用下面几行代码行来获取屏幕上显示的键盘框架.我已注册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]?' 没有名为'下标'的成员
我无法弄清楚这个错误或如何解决它.
我正在尝试更改文本对齐方式和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吗?
ios ×8
swift ×3
xcode ×2
c# ×1
class ×1
cocoa ×1
controller ×1
datagridview ×1
dictionary ×1
ipad ×1
iphone ×1
math ×1
model ×1
mvvm ×1
nscoding ×1
objective-c ×1
swift2 ×1
swift3 ×1
uiscrollview ×1
viewmodel ×1
xcode5 ×1
xcode6 ×1
xcode6-beta6 ×1
xcode7.1beta ×1