小编fs_*_*gre的帖子

了解Objective-C中的实例化

我目前正在尝试通过阅读书籍和在线教程来学习Objective-C,同时参考Apple文档,但有些事情只是不要点击.我有关于类的问题,我已经使用NSString一段时间了,而没有过多地关注它的使用方式.

我的印象是,为了让某人能够使用Objective-C中某个类的方法,你首先需要实例化它,比如...

ClasssName *varName = [[ClassName alloc]init];
Run Code Online (Sandbox Code Playgroud)

然后你会调用像......这样的方法

[varName someMethod];
Run Code Online (Sandbox Code Playgroud)

但是看看如何使用NSString我现在有点困惑,例如这里我们通常会如何使用它...

NSString *someString = @"some text here";
[someString stringByAppendingFormat:  @"some text = %d", 3];
Run Code Online (Sandbox Code Playgroud)

按照我所读到的关于类的内容,我们需要做以下的事情.

NSString *someString  =  [[NSString alloc]initWithString: @"some text here"];
[someString stringByAppendingFormat:  @"some text = %d", 3];
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么有些类在使用其方法之前不需要实例化吗?

cocoa objective-c instantiation nsstring

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

Objective-C中工厂方法的语法和用法是什么

我一直在网上试图了解工厂方法是什么,但我没有找到任何显示具体例子的简单例子.我简要介绍了其中一本书,但它没有展示一个例子,也没有解释它们是什么"类方法通常用作工厂方法".

1- Objective-C中工厂方法的语法和用法是什么? 是我找到的最接近的答案,但是当我在评论中尝试这个例子作为答案时,我收到一条消息说我不能打电话给超级.在这个问题中,我更关注工厂方法的实现语法.

2-工厂方法在其他语言中是什么叫做构造函数?

3-工厂方法与单身人士相比如何?

来自Apple文档:

它们在一个步骤中组合分配和初始化,并返回创建的对象

单身人士不是吗?

在下面的单例示例中,我们可以说类方法sharedData是一个工厂方法吗?

.m文件

#import "SingletonModel.h"
@implementation SingletonModel
static SingletonModel *sharedData;

- (id) init {
    if (self = [super init]) {
        // custom initialization
    }
    return self;
}

 // is this a factory method?
+(SingletonModel*) sharedData
{
    if (!sharedData) {
        sharedData = [[SingletonModel alloc]init];
    }
    return sharedData;
}
@end
Run Code Online (Sandbox Code Playgroud)

objective-c factory-pattern ios

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

检查NSUserdefaults/UserDefaults中是否存在布尔键的正确方法是什么

以下两个示例中的哪一个最适合检查boolean密钥是否存在NSUserdefaults

1-这可以接受吗?

if NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
   print("Key Does Exist")
}
Run Code Online (Sandbox Code Playgroud)

2-这是首选方式吗?

if (NSUserDefaults.standardUserDefaults().objectForKey("myKey") != nil) {
     print("Key Does Exist")
}
Run Code Online (Sandbox Code Playgroud)

boolean nsuserdefaults swift

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

在inputAccessoryView中均匀空间UIToolbar按钮

在下面的代码中,我有三个按钮,显示何时点击inputField.现在按钮显示但是所有这些按钮都向左移动了,我想要做的就是让它们均匀分布空间,并保持它们像那样,无论它们在哪个手机上观看.

如何均匀分隔UIToolbar中的按钮?

码:

override func viewDidLoad() {
    super.viewDidLoad()

    addButtonsToKeyboard()
}


 // Reusable Button
func configurButton(button:UIButton) {
    button.backgroundColor = UIColor.whiteColor()
    button.layer.cornerRadius = 5
    button.layer.borderWidth = 1.0
    button.layer.borderColor = UIColor.blueColor().CGColor
    button.setTitleColor(UIColor.lightGrayColor(), forState: .Normal)
    button.setTitleColor(UIColor.blueColor(), forState: .Highlighted)
    button.frame = CGRect(x:0, y:0, width:50, height:35)
    button.addTarget(self, action: #selector(customKeyPressed), forControlEvents: UIControlEvents.TouchUpInside)
}


   func addButtonsToKeyboard(){
        // First button
        let button1 = UIButton()
        button1.setTitle("Btn 1", forState: .Normal)
        configureButton(button1)
        let barButton1 = UIBarButtonItem()
        barButton1.customView = button1

        // Second button
        let button2 = UIButton()
        button2.setTitle("Btn 2", forState: .Normal)
        configureButton(button2)
        let …
Run Code Online (Sandbox Code Playgroud)

uitoolbar swift

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

要使用什么通信,updateApplicationContext或sendMessage以进行常量数据同步

我有一个iOS购物清单应用程序,其中的项目被添加并显示在tableView中.我想创建一个Watch App Extension但是我想在这种情况下使用什么是最好的函数调用,updateApplicationContext(:)方法或sendMessage(:replyHandler:errorHandler :)方法我正在阅读文档但是我因为两者似乎都有效,所以有点困惑.

这是我期望拥有的功能......

我想要的是能够在iOS应用程序中添加项目,即使Watch应用程序处于关闭状态,这是正常行为,但我希望Watch应用程序更新为tableView(在iOS中)中的任何内容,只要它是打开,即使手表开启时iPhone未打开.

换句话说,我希望iOS应用中的数据始终与Watch应用同步.

在这种情况下,哪种updateApplicationContext(_:)方法或 sendMessage(_:replyHandler:errorHandler:)方法使用的函数最好?

谢谢

swift watchkit watchos watchconnectivity

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

如何将索引为 0 的项目插入 Realm 容器

有没有办法在 0 索引处插入新项目到Realm容器?我在Realm类中没有看到插入方法。

我需要使用Lists 吗?如果答案是肯定的,我如何重构以下代码以能够使用Lists 并使 List 与Realm容器保持同步。换句话说,我很难想出一种在添加和删除时保持Realm容器和List相同项目的好方法。

在以下代码中,在最后一个索引处输入新项目。如何重组它以便能够在 0 索引处插入项目?

模型类

import RealmSwift

class Item:Object {
    dynamic var productName = ""
}
Run Code Online (Sandbox Code Playgroud)

主视图控制器

let realm = try! Realm()
var items : Results<Item>?

var item:Item?

override func viewDidLoad() {
    super.viewDidLoad()

    self.items = realm.objects(Item.self)
}

func addNewItem(){
        item = Item(value: ["productName": productNameField.text!])
        try! realm.write {
            realm.add(item!)
        }
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { …
Run Code Online (Sandbox Code Playgroud)

realm ios swift

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

理解 Realm 中的迁移 - Swift

我正在尝试了解迁移,有人可以描述需要迁移的情况吗?

例如,让我们假设一个应用程序已经发布并使用了以下Realm对象,但现在需要发布版本 2 并且Realm向这个新版本添加了一个新对象,我需要迁移吗?

版本 1

import Foundation
import RealmSwift

class Item:Object{
    dynamic var productName:String = ""
    dynamic var createdAt = NSDate()
}


import Foundation
import RealmSwift

class ItemList: Object {
    dynamic var listName = ""
    dynamic var createdAt = NSDate()
    let items = List<Item>()
}
Run Code Online (Sandbox Code Playgroud)

版本 2

版本 2 需要一个新对象。

import Foundation
import RealmSwift

class Item:Object{
    dynamic var productName:String = ""
    dynamic var createdAt = NSDate()
}


import Foundation
import RealmSwift

class ItemList: Object { …
Run Code Online (Sandbox Code Playgroud)

database-migration realm swift

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

在Qt中使用信号和插槽将QDialog与MainWindow通信

好的,我认为是时候得到一些帮助,我一直在练习Qt中的信号和插槽,我得到了库存.我想要的是能够在单击QDialog中的按钮时更改主窗口中的标签.我一直在寻找,显然唯一的方法是基本上使用信号和插槽,这是我有...

我有一个mainwindow.ui,一个名为"pushButton_OpenWindow"的按钮和一个QLabel label_ShowText",我还有一个包含一个名为lineEdit_ExternalInput的QLineEdit的externaldialog.ui"和一个名为"pushButton_SendText"的QPushButton,我想要的是更改"label_ShowText" "无论什么价值"lineEdit_ExternalInput"当点击pushButton_SendText"但它不起作用,当我点击按钮时没有任何错误发生,没有任何警告.

这是不起作用的代码......

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_OpenWindow_clicked();
    void textValue(const QString &newText);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "externaldialog.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ExternalDialog *externalDialog = new ExternalDialog;
    // connecting signals and slots
    QObject::connect(externalDialog, SIGNAL(textChanged(QString)), this, SLOT(textValue(QString)));
}

MainWindow::~MainWindow() …
Run Code Online (Sandbox Code Playgroud)

c++ qt dialog signals-slots

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

如何从 ViewModel 读取 TextBox 焦点 - MVVM Light

我有两个文本框,在我的 ViewModel 中我希望能够跟踪当前处于焦点的框。

<TextBox x:Name="textBox1" Text="Text Box 1"/>
<TextBox x:Name="textBox2" Text="Text Box 2"/>
Run Code Online (Sandbox Code Playgroud)

如何从我的 ViewModel 中读取/识别当前处于焦点的文本框?

c# wpf textbox mvvm mvvm-light

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

如何在Swift中处理深色模式的自定义颜色

这是我目前UI Element Colors在深色模式下处理旧版本操作系统的方式。

extension UIColor {
    class var mySystemBackground: UIColor {
        if #available(iOS 13, *) {
            return .systemBackground
        } else {
            return .white
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,可以systemBackground知道它何时处于暗模式下以及何时处于亮模式下,并相应地进行了更改。我想使用自定义颜色做类似的事情。

例如,我有一个自定义的黄色,当前正在整个应用程序中使用,我想为处于深色模式的用户提供不同的颜色。

这是我在想的代码...

extension UIColor{
    class var mySystemYellowColor: UIColor {
        // default light-color 
        var myYellow = UIColor(red: 254/255, green: 219/255, blue: 2/255, alpha: 1.0) /* #fedb02 */

        if #available(iOS 13.0, *) {  

            if traitCollection.userInterfaceStyle == .light {
                return myYellow
            } else {
                // color for dark mode in iOS 13.0 …
Run Code Online (Sandbox Code Playgroud)

ios swift ios13 ios-darkmode

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