小编Ben*_*uan的帖子

如果在tableView:cellForRowAtIndexPath中设置,则cell.backgroundColor不响应

我试图用红色为某些表格着色,所以我尝试添加

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
... init Code here
cell.backgroundColor = [UIColor redColor];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
Run Code Online (Sandbox Code Playgroud)

附件Checkmark出现但不是红色.

后来我发现把它放在tableView:willDisplayCell中就可以了.这是设计的吗?为什么忽略我在初始化单元格时已经设置的值?

cocoa-touch background-color uitableview ios

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

NSArchiver 与 NSKeyedArchiver 性能

为什么 NSKeyedArchiver 性能这么差?与使用 NSArchiver 相比,大小翻了一番。

我正在使用以下行编码对象的 NSMutableArray

BOOL result = [NSArchiver archiveRootObject:self.appDataObject.materias toFile:archivePath];
Run Code Online (Sandbox Code Playgroud)

NSMutableArray 包含具有相应 encodeWithCoder 和 initWithCoder 的自定义对象

-(void)encodeWithCoder:(NSCoder *)aCoder
{

    [aCoder encodeObject: _fileName];
    [aCoder encodeObject: _categoria];
    [aCoder encodeObject: _materia];
    [aCoder encodeObject: _nombre];

    [aCoder encodeObject: _position];
    [aCoder encodeValueOfObjCType:@encode(BOOL) at:&_favorite];

}

-(id)initWithCoder:(NSCoder *)aDecoder
{
    if (self=[super init]) {
        [self setFileName:[aDecoder decodeObject]];
        [self setCategoria:[aDecoder decodeObject]];
        [self setMateria:[aDecoder decodeObject]];
        [self setNombre:[aDecoder decodeObject]];

        [self setPosition:[aDecoder decodeObject]];
        [aDecoder decodeValueOfObjCType:@encode(BOOL) at:&_favorite];
    }

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

它工作正常,因为它正确保存了文件,然后我可以取消归档它。它们大约有 3000 个对象,输出文件大约为900kB

当我将归档行更改为:

BOOL result = [NSKeyedArchiver archiveRootObject:self.appDataObject.materias …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c nskeyedarchiver ios

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

sveltekit:模块“$app/stores”没有导出成员“会话”

我正在尝试将 sveltekit 应用程序从旧版本迁移到最新版本。会话已从 $app/stores 中删除。

我无法在当前文档中找到对新会话的引用。

我在 +layout.svelte 中使用此参考

    <script lang="ts">
        import { session } from '$app/stores';
    </script>
Run Code Online (Sandbox Code Playgroud)

并从 hooks.ts 调用 GetSession:

    import type { GetSession, Handle } from '@sveltejs/kit';
Run Code Online (Sandbox Code Playgroud)

引用它们的新方式是什么?

本.

session sveltekit

5
推荐指数
0
解决办法
286
查看次数

Swift数组类型现在用带有mutli维数组的元素类型的括号编写

我试图用以下行定义SKSpriteNode(或任何其他类型)类型的多维数组:

var _tiles:SKSpriteNode[][]  = []
Run Code Online (Sandbox Code Playgroud)

但我得到了Swift警告:"现在使用括号围绕元素类型编写数组类型"

对于单维数组,可以这样做:

var _tiles:[SKSpriteNode]  = []
Run Code Online (Sandbox Code Playgroud)

但它如何与多维度一起使用?

arrays swift

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

将 IIFE 格式的函数导出到 ES6 模块

模块/IIFE 等有点麻烦。我有一个脚本,它曾经是一个 IIFE,并且使用了很多这个关键字等等。我正试图将它变成一个模块。

我有以下模块dice.js

export default function () {
this.createDice = function() { ... }
... 
}
Run Code Online (Sandbox Code Playgroud)

在主应用程序上,我称之为:

import Dice from "./dice.js";

let DICE = new Dice();
let dice1 = DICE.createDice();
let dice2 = DICE.createDice();
Run Code Online (Sandbox Code Playgroud)

它有效......我的问题是,有没有办法避免创建额外的 DICE 变量来调用所有方法?换句话说,我想这样称呼它:

import Dice from "./dice.js";

let dice1 = Dice.createDice();
let dice2 = Dice.createDice();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 IIFE,但无法解决问题。

javascript iife es6-modules

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