小编Che*_*ong的帖子

为什么我在定义委托时遇到错误"无法使用手动引用计数合成文件中的弱属性"?

我在一个文件中有协议和类头:

@protocol SomethingDelegate
- (void) doSomething;
@end

@interface SomethingClass
@property (nonatomic, weak) id <SomethingDelegate> delegate;
@end
Run Code Online (Sandbox Code Playgroud)

在.m文件中:

@implementation SomethingClass // in here I got error "Cannot synthesize weak property in file using manual reference counting"

@end
Run Code Online (Sandbox Code Playgroud)

如果我把它改成这样:

@implementation SomethingClass 

@synthesize delegate; // in here I got error "Cannot synthesize weak property in file using manual reference counting"

@end
Run Code Online (Sandbox Code Playgroud)

为什么会这样?以及如何解决这个问题?如果我从更改错误消失weakstrong.但这不是代表应该如何宣布,对吧?如何正确宣布弱代表?

delegates class objective-c

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

如何在 iOS Swift 中可靠地获取键盘高度?

我有这个代码来检测键盘何时显示并获取其高度。

@objc func keyboardWasShown (_ notification: Notification) {
    let keyboardSize = (notification.userInfo![UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.size;
    print ("KEYBOARD SIZE: \(keyboardSize.height)");
}
Run Code Online (Sandbox Code Playgroud)

起初,当我第一次点击 UITextView 使其成为第一响应者时,控制台显示 271.0 点。

然后我点击视图以关闭键盘。然后我再次点击 UITextView。现在它显示 226.0 点。

第一次和后续试用中的键盘布局没有变化。一开始我总是得到 271,然后下一个总是 226。正确的是 271。

为什么会这样?以及如何修复它?

keyboard-events uikeyboard ios notificationcenter swift

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

无法将“UITableViewCell”类型的值转换为“SwipeCellKit.SwipeTableViewCell”

我正在尝试使用SwipeCellKit在我的项目中调用的 pod ,其中该 pod 添加了一个名为 SwipeTableViewCell 的类。到目前为止我所做的是:

  • 为故事板创建一个视图控制器。
  • 创建一个UIViewController类。
  • 导入SwipeCellKitSwift 文件。
  • 将视图控制器分配给类。
  • 将表视图添加到视图控制器。
  • 将委托和数据源从表视图连接到视图控制器。
  • 将原型单元格添加到表格视图中,并将其命名为“单元格”作为其可重用标识符。
  • 将单元格类更改为 SwipeTableViewCell。
  • 将表视图委托添加到视图控制器。
  • 添加numberOfRowscellForRow函数到我的 UIViewController 类。

这是的实现cellForRow

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell;
    return cell;
}
Run Code Online (Sandbox Code Playgroud)

但是我在 上出错let cell = ...,说:

无法将“UITableViewCell”类型的值转换为“SwipeCellKit.SwipeTableViewCell”

为什么?以及如何解决这个问题?我想我已经安排好了一切。我错过了什么?

uitableview ios swift

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

PHP的nl2br无法正常工作

例如,我有:

Lorem Ipsum

Dolor Sir Amet
Run Code Online (Sandbox Code Playgroud)

作为内容$s。现在,如果我打印的结果htmlspecialchars(nl2br($s))是:

Lorem Ipsum<br />
<br />
Dolor Sir Amet
Run Code Online (Sandbox Code Playgroud)

虽然我想要的结果是:

Lorem Ipsum<br /><br /> Dolor Sir Amet
Run Code Online (Sandbox Code Playgroud)

为什么nl2br即使已插入,也不会删除回车符<br />?还是如何正确使用nl2br来正确除去回车?因为这破坏了我的SQL。我在Windows 7中的Apache上运行PHP。谢谢。

php carriage-return

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

将具有屏幕视图的另一个类的委托设置为 self

我对 iOS 编程还很陌生。我有这个设置:

ViewController 在IB上查看,有课 ViewController

SecondController 在IB上查看,有课 secondController

我有协议:

protocol SecondControllerDelegate {
    func getSomething() -> String
}
Run Code Online (Sandbox Code Playgroud)

我在 SecondController 上有委托变量:

class secondController: UIViewController {
    var delegate: SecondControllerDelegate?
    @IBOutlet weak var labelStatus: UILabel!

    override func ViewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func buttonTouch(sender: AnyObject) {
        labelStatus.text = delegate?.getSomething()
    }

    func try () {
        labelStatus.text = "testing"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,根据无处不在的提示,为了可以调用delegate?.getSomething()at SecondController.buttonTouch(),我需要在 viewController 上进行如下设置:

class ViewController: UIViewController, SecondControllerDelegate {
    override func viewDidLoad () {
        super.viewDidLoad()
        SecondController.delegate = self
    }
    func …
Run Code Online (Sandbox Code Playgroud)

delegates protocols swift

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

如何在 iOS XCode 中设置“三种状态”复选框/开关?

我需要一个复选框,用户可以在其中将状态设置为“未设置”。基本上,我向用户展示了一个表单,他可以在其中声明他同意某事(真),他不同意某事(假),或者他什么都不说(空/空/未设置)。如果他设置为 true 或 false,我将向服务器发送数据。但是如果它处于未设置状态,服务器会将记录设置为空/空/未设置。这对于搜索时很有用,用户可以在其中说明他是否要搜索具有 AC 或不具有 AC 或两者兼有的属性。

我怎样才能在 iOS 的 XCode 中做到这一点?谢谢。

编辑:这是帮助可视化我要做什么的模型。解决方案不必完全像这样(不必是复选框),因为我知道用户通常希望复选框只有两个值(真、假)。但这是我能想到的最接近的可视化。

在此处输入图片说明

xcode ios

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

我可以扩展 Swift 保留字“enum”吗?

例如,我想添加如下内容:

extension enum : T {
    convenience init? (rawData: T?) -> enum? {
        guard let rawData = rawData else { return nil; }
        return self.init(rawData: rawData);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能不是我为什么需要扩展枚举的最佳案例,但我只是想探索可能性。谢谢。

enums swift

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

使用jQuery在公共"root"中选择另一个div

我有这种结构:

<div class="root">
    <div class="image">
        <div class="price">$100</div>
    </div>
    <div class="productinfo">
        <div class="title" id="title1">Banana</div>
    </div>
</div>

<div class="root">
    <div class="image">
        <div class="price">$14</div>
    </div>
    <div class="productinfo">
        <div class="title" id="title2">Spoon</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,我需要知道price具有内容的类的div的宽度,$100而不是最终得到div的宽度$14; 但是代码需要从中开始$("#title1").我应该怎么做?或者,我应该如何选择元素的父元素,然后选择具有该父元素的特定类的子元素?谢谢!

javascript css jquery

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

如何在swift中将sql时间戳转换为日期?

1465536311我从数据库 SQL 查询(如or )获取时间戳结果1465540078。如何快速将这些数字转换为当前日期和时间?

sql datetime timestamp ios swift

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

为什么标记为@IBInspectable的属性不起作用?

我按照这里的教程创建了一个可检查和可设计的视图.我只想添加边框颜色,边框宽度和圆角边框功能UIView.

我成功地展示了这些属性.但是无论我在故事板上设置什么,结果仍然就像他们不在那里一样.没有边框,即使我将边框设置为宽2和黑色.它没有在故事板和运行时显示.我已将边框设置为2宽度,但在运行时,我在didViewLoad处打印边框宽度值,结果为0.可能出现什么问题?

@IBDesignable extension view: UIView {

    @IBInspectable var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = newValue > 0
        }
    }

    @IBInspectable var borderWidth: CGFloat {
        get {
            return layer.borderWidth;
        }
        set {
            layer.borderWidth = borderWidth;
        }
    }

    @IBInspectable var borderColor: UIColor? {
        get {
            return UIColor(CGColor: layer.borderColor!);
        }
        set {
            layer.borderColor = borderColor?.CGColor
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

@IBDesignable class BOView: UIView {

    @IBInspectable var cornerRadius: CGFloat { …
Run Code Online (Sandbox Code Playgroud)

ios swift ibdesignable ibinspectable

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

为什么我的计时器不想在指定的时间间隔内触发?

我的班级中有这两个功能:

func setTimer () {
    alertEndTimer = Timer.init(timeInterval: 10, target: self, selector: #selector(hideAlert), userInfo: nil, repeats: false);
    print ("NOW: \(now)") 
    print ("FIRE DATE: \(alertEndTimer!.fireDate)");
}

@IBAction func hideAlert () {
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

控制台的结果是这样的:

NOW: 2017-03-01 03:32:36 +0000
FIRE DATE: 2017-03-01 03:32:46 +0000
Run Code Online (Sandbox Code Playgroud)

然后我在 上设置了一个断点doSomething();。但是等了 1 分钟后,根本没有调用断点。我还检查了 timer 是否isValid(),它返回true。那么为什么我的函数没有被调用?

timer swift

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

为什么我不能在Swift中将字符串转换为日期?

我有这个简单的代码:

let string = "2017-02-23 15:26:00";
let df = DateFormatter();
df.dateFormat = "yyyy-MM-dd hh:mm:ss";
let result = df.date(from: string);
Run Code Online (Sandbox Code Playgroud)

结果为零。为什么?

datetime nsdateformatter swift swift3

-1
推荐指数
1
解决办法
816
查看次数