Tag: 初始化

加载xib时的执行顺序?

我已经在iOS上进行了近6个月的编程,左右使用xib,但是我仍然不知道如何加载过程工作… 我的意思是,我有视图控制器和button来打开新的模式视图控制器。 从那时起,情况如何呢? 首先调用init方法,然后创buildxib,sockets连接,然后再加载nib? 有没有什么好的文章或书能详细解释这一点?

如何解决UITableViewController指定的初始化错误?

我是新来的swift,我有问题在我的PlacesTableViewController类中声明我的初始值设定项。 它提示我“从初始化程序返回之前不会调用Super.init”,当我添加Super.init时,它会提示我: “必须调用超类'UITableViewController'的指定初始值设定项” 这是我的PlacesTableViewController.swift文件: class PlacesTableViewController: UITableViewController { var pa55DB : COpaquePointer = nil var selectStatement : COpaquePointer = nil; var chapterdata : Array<Entry> = [] var ety : Entry var sqlString : String = ""; var chpData : ChapterData init(pa55DB : COpaquePointer,selectStatement : COpaquePointer, chapterdata : Array<Entry>, ety : Entry, sqlString : String) { […]

iOS – 这是一个枚举的任务?

如果我想执行下面的代码,那么enums是合适的吗? 我查了几个关于枚举的问题,但是我还是有点不确定。 if (dayOfWeek == Monday) { // Do something } else if (dayOfWeek == Tuesday || dayOfWeek == Wednesday) { // Do something else } 如果这看起来是正确的,我将如何去初始化枚举? 它会在标题或实施文件?

在UIButton中初始化目标的位置? 特别关心IBDesignable

我有一个 @IBDesignable class Fancy:UIButton 我要 addTarget(self, action:#selector(blah), forControlEvents: UIControlEvents.TouchUpInside) 那么UIButton应该在哪里做? addTarget最好的地方在哪里? 1 – 我见过layoutSubviewsbuild议 – 是吗? 注意 – 实验表明layoutSubviews存在一个问题,当然,只要事情四处移动,就可以经常调用它。 多次添加目标是一个糟糕的主意。 2 – didMoveToSuperview是另一个build议。 3 – inits(其中之一)的某个地方? 注意 – 如果你在Init内部进行实验,实验会显示一个令人着迷的问题。 在Init期间,IBInspectablevariables还没有真正设置! (因此,例如,我根据IBInspectable设置的控件的“样式”进行了分支;它不会像@IBInspectable:在运行时不起作用!) 4 – 别的地方? 我试图在初始化,它运作良好。 但它打破了编辑工作的devise。 通过颠簸,我想出了这个(由于某种原因,都必须包括在内?) @IBDesignable class DotButton:UIButton { @IBInspectable var mainColor … etc. required init?(coder decoder: NSCoder) { super.init(coder: decoder) addTarget(self, action:#selector(blah), […]

NSMutableArray属性的初始化和更新

假设我有一个@property,它是一个包含四个对象使用的分数的NSMutablearray。 他们将被初始化为零,然后在viewDidLoad和应用程序的整个操作过程中更新。 出于某种原因,我不能把想法放在需要做的事情上,特别是在声明和初始化步骤。 我相信这可以是一个私人财产。 @property (strong, nonatomic) NSMutableArray *scores; @synthesize scores = _scores; 然后在viewDidLoad我尝试这样的事情,但得到一个错误。 我想,我只需要语法方面的帮助。 或者我错过了一些非常基本的东西。 self.scores = [[NSMutableArray alloc] initWithObjects:@0,@0,@0,@0,nil]; 这是一个适当的方式来初始化它? 那么如何添加(NSNumber *)updateValue,例如,第n个值? 编辑:我想我想通了。 -(void)updateScoreForBase:(int)baseIndex byIncrement:(int)scoreAdjustmentAmount { int previousValue = [[self.scores objectAtIndex:baseIndex] intValue]; int updatedValue = previousValue + scoreAdjustmentAmount; [_scores replaceObjectAtIndex:baseIndex withObject:[NSNumber numberWithInt:updatedValue]]; } 有没有更好的方法来做到这一点?

init方法与viewDidLoadtypes方法

init方法中的代码types(对象分配,设置ui元素,networking调用等)与视图控制器的viewDidLoadtypes方法之间的区别的一般指导原则是什么?

如何将.sks文件添加到现有的Swift / Sprite-Kit项目?

我开始关注Ray Wenderlich的“太空入侵者”教程,但是分歧很大。 我现在有3个SKScenes – 我的标题屏幕,我的主要游戏屏幕和我的结束水平/游戏在屏幕上。 我添加的标题屏幕和结束游戏场景,这些都有.sks文件; 主游戏屏幕不会显示所有元素(SKSpriteNodes等)。 我的程序stream程如下: 我现在真的想通过场景编辑器放置主游戏屏幕的一些事件,所以我为它创build了一个.sks文件,并试图改变我的titleScene.swift,如下所示: 从: let gameScene = GameScene(size:CGSize(width: 1536, height: 2048)) 至: let gameScene = SKScene(fileNamed: "GameScene.sks") as! GameScene! 但是,这会给出: 我试图删除required init(coder aDecoder: NSCoder)但Xcode然后抱怨说 所需的init(编码器:必须由SKScene的子类提供 然而我的titleScene和gameOverScene也是gameOverScene的子类,他们没有init(coder 🙂 我真的不能看到我在做什么显示我的titleScreen和我的gameOverScene通过(fileNames :)和他们的.sks文件,并尝试做我的gameScene相同的区别。

Swift:计算属性的默认初始值设定项

看来我不能使用可用于存储属性的默认初始值设定项方法给计算属性一个默认值。 这里有一个用例,我需要这个: @IBDesignable public class MyRoundedCornersView: UIView { @IBInspectable var cornerRadius: CGFloat { get { return self.layer.cornerRadius } set { self.layer.cornerRadius = newValue } } } 我想给cornerRadius一个默认值。 但以下不起作用(只是增加= 8.0 ): @IBDesignable public class MyRoundedCornersView: UIView { @IBInspectable var cornerRadius: CGFloat = 8.0 { get { return self.layer.cornerRadius } set { self.layer.cornerRadius = newValue } } […]

SKSpriteNode子类化swift

我发现了一些这方面的post,但我仍然困惑如何做到这一点。 我知道我必须使用init(texture:SKTexture!,color:UIColor!,size:CGSize)的“指定初始化程序”。 真的,我不会用那个。 我想只是添加一些属性的精灵节点。 class Piece: SKSpriteNode { enum Type: Int { case type1 = 1, type2, type3, type4, type5 } var piecetype : Type init(texture: SKTexture!, color: UIColor!, size: CGSize) { self.piecetype = .type1 super.init(texture: texture, color: color, size: size) } convenience init(imageNamed: String!, currentPiece: Type) { self.piecetype = currentPiece let color = UIColor() […]

自定义UITableVIewCell初始化不被调用

我有自定义UiTablleviewCell与一些图像和标签,我想在tableview单元格中旋转标签…所以我想编辑initWithStyle方法,但它似乎是从来没有调用。 – (id)initWithStyle:(UITableViewCellStyle)stylereuseIdentifier:(NSString*)reuseIdentifier{ NSLog(@"creating cell"); self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { } return self;} 但在我的日志中,我不能看到这个消息。 在tableview中我有标准的cellForRow方法 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *simpleTableIdentifier = @"messagesCell"; TBCellMessagesCell *cell = (TBCellMessagesCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; cell.selectionStyle = UITableViewCellSelectionStyleNone; // smt stuff return cell; } 所以我想知道如何tableview初始化tableviewcells,我可以考虑一些解决方法,但我想要它干净。 谢谢。