小编Nat*_*olz的帖子

删除发行版iOS Swift的println()

println()如果我不在Debug构建中,我想全局忽略我的Swift代码中的所有调用.我找不到任何有力的分步说明,并希望得到指导.有没有办法在全球范围内做到这一点,还是我需要println()#IF DEBUG/#ENDIF语句包围每一个?

xcode ios swift xcode6

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

计算具有特定属性值的数组中的项目数

我有一个Person()类:

class Person : NSObject {

    var firstName : String
    var lastName : String
    var imageFor : UIImage?
    var isManager : Bool?

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

我有一个Person()数组

var peopleArray = [Person]()
Run Code Online (Sandbox Code Playgroud)

我想计算数组中拥有的人数

 isManager: true
Run Code Online (Sandbox Code Playgroud)

我觉得这是在那里,但我无法找到它,或找到搜索参数.

谢谢.

arrays ios swift

16
推荐指数
3
解决办法
8319
查看次数

iOS Swift:保存一组自定义类

我是编程新手.我在swift中为iOS制作了一个小数据库程序.

我有一个人课:

class Person : NSObject {
    var firstName : String
    var lastName : String

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

我在视图控制器的顶部声明了一个类的数组:

    var peopleArray = [Person]()
Run Code Online (Sandbox Code Playgroud)

然后我通过声明一些示例用户填充数组并将其附加到数组:

    var nateB = Person(firstName: "Nate", lastName: "Birkholz")
    var nateC = Person(firstName: "Nate", lastName: "Carson")
    var nateD = Person(firstName: "Nate", lastName: "Donnelly")
    self.peopleArray.append(nateB)
    self.peopleArray.append(nateC)
    self.peopleArray.append(nateD)
Run Code Online (Sandbox Code Playgroud)

然后我尝试将数据保存到plist文件:

        let fileManager = (NSFileManager.defaultManager())
        let directorys : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.AllDomainsMask, true) as? [String]

        if (directorys != nil){
            let …
Run Code Online (Sandbox Code Playgroud)

arrays serialization ios swift

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

iOS8 Swift:deleteRowsAtIndexPaths崩溃

我在使用Swift,iOS 8,Xcode 6 Beta 6中的tableView中删除一行时遇到了一些麻烦.每当我尝试删除一行时,我都会遇到错误.

断言失败 - [UITableView _endCellAnimationsWithContext:],/ SourceCache/UIKit_Sim/UIKit-3302.3.1/UITableView.m:1581 2014-08-30 20:31:00.971类目录[13290:3241692]***终止应用程序未捕获的异常'NSInternalInconsistencyException',原因:'无效更新:第1节中的无效行数.更新后现有部分中包含的行数(25)必须等于更新前该部分中包含的行数(25),加上或减去从该部分插入或删除的行数(插入0,删除1),加上或减去移入或移出该部分的行数(0移入,0移出).

我已经阅读了这个常见问题的所有答案,并且觉得我已经满足了建议的条件.该项似乎从数据模型中删除 - 当我重新加载应用程序时,已删除的项目从表中消失 - 但在相应的sqlite文件中似乎有一些残余,当然数学不会加起来.吐出indexPath的println显示正确的Section和Row.我很困惑.这应该是直截了当但我遗漏了一些愚蠢的我确定,我怀疑在数据模型删除.Github上的完整项目.

func numberOfSectionsInTableView(tableView: UITableView!) -> Int {

    return fetchedResultController.sections.count

}


func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
    return fetchedResultController.sections[section].numberOfObjects

    }

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    let cell = tableViewMain.dequeueReusableCellWithIdentifier("CellMain", forIndexPath: indexPath) as UITableViewCell

        let personForRow = fetchedResultController.objectAtIndexPath(indexPath) as Person
        cell.textLabel.text = personForRow.fullName()

        return cell

}

func tableView(tableView: UITableView!, canEditRowAtIndexPath indexPath: NSIndexPath!) -> Bool …
Run Code Online (Sandbox Code Playgroud)

xcode uitableview ios swift ios8

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

iOS Xcode:在Objective-C中访问Ivar的编译器错误

我正在一个现有的大型Objective-c代码库中工作,目前正在编写单元测试.该项目广泛使用实例变量.

我写了一个方法来抓住伊娃的东西.它在同一个项目中的另一个单元测试中工作,但在这种情况下不起作用.

码:

-(id)getObjectForIvarNamed:(NSString *)ivarNameString
 {
    const char *ivarName = [ivarNameString UTF8String];

    Ivar ivarValue = class_getInstanceVariable([textFieldOverlay class], ivarName);
    id objectAtIvar = object_getIvar(textFieldOverlay, ivarValue);

    return objectAtIvar;
}
Run Code Online (Sandbox Code Playgroud)

编译器在从Ivar ivarValue以下错误开始的行处抱怨:

"Declaration of 'Ivar' must be imported from module 'ObjectiveC.runtime' before it is required"

对此错误代码的网络搜索会出现零点击.不知道为什么它在另一个文件中工作,两个XCUnitTest类之间的标题看起来都一样.

c xcode objective-c clang ios

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

iOS Swift:UIViewControllerAnimatedTransitioning结束帧位置错误

我有一个Swift项目,学习天气API,并试图更好地处理AnimatedTransitions.我有一个UITableView使用UITableViewCell图像和文字的自定义.点击tableView中的单元格转换为新UIViewController的Show(推送),整个内容嵌入到UINavigationController.

当调用转换时,来自单元的图像应该移动到UIImageView目标viewController上的最终位置.但是,它的作用是在转换完成并且视图发生变化之前移过该点到屏幕的远端,使图像看起来快照回到视图的中心.

截图

我已经阅读了很多教程试图解决这个问题,并且已经阅读了很多StackOverflow,但未能弄明白.有人可以向我指出我错过了什么吗?我疯了,在这里.

在原始ViewController中调用转换的segue:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  self.performSegueWithIdentifier("SHOW_DETAIL", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if segue.identifier == "SHOW_DETAIL" {
    let detailVC = segue.destinationViewController as DetailViewController
    let indexPathForForecast = self.tableView.indexPathForSelectedRow() as NSIndexPath!
    let detailForecast = self.forecasts?[indexPathForForecast.row]
    let cell = self.tableView.cellForRowAtIndexPath(indexPathForForecast) as WeatherCell
    let image = cell.forecastImage.image
    detailVC.forecastForDetail = detailForecast
    detailVC.forecastDetailImage = image
  }
}

func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiviewanimation ios swift

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

CIImage 将调整后的图像大小加倍

我在操场上有以下代码:

import UIKit

var str = "Hello, playground"

func rescaledImage(_ image: UIImage, with newSize: CGSize) -> UIImage {
    let renderer = UIGraphicsImageRenderer(size: newSize)
    let rescaled = renderer.image { _ in
        image.draw(in: CGRect.init(origin: CGPoint.zero, size: newSize))
    }

    return rescaled
}

let original = UIImage(named: "burn.jpg")!

let resized = rescaledImage(original, with: CGSize(width: 200, height: 200))

let ciImage = CIImage(image: resized)
Run Code Online (Sandbox Code Playgroud)

burn.jpg 是 5000 像素 x 5000 像素的黑白 jpg。

resized图像是适当200个像素200个像素。该ciImage然而,是400个像素×400个像素。事实上,无论我将其大小调整为什么,它ciImage总是加倍。

但是,如果我只是ciImageoriginal

let ciImage …
Run Code Online (Sandbox Code Playgroud)

core-image ios swift

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