小编ndg*_*ndg的帖子

UIScrollView内部的动态UILabel内容

我在UIScrollView中存储了UILabel(以及其他控件).我想动态填充UILabel,以便它自动扩展其高度以适应其内容.我只是想知道关于调整UILabel大小的最佳实践是什么,同时还要确保其父UIScrollView也将扩展其可滚动区域.

我试图将UILabel的#行设置为0,我读过的应该会自动扩展UILabel以适应其内容,但我没有太多运气.在重新计算UIScrollViews可滚动区域方面,我想这是在填充UILabel之后计算其子节点高度的情况.

iphone cocoa-touch uiscrollview uilabel

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

斜率一个实现提供了差的建议

我试图通过PHP实现一个Slope One算法,用于基于用户的项目推荐.为此,我正在使用OpenSlopeOne库.我遇到的问题是生成的建议与用户完全无关.

目前我有两个表:user_ratings和slope_one.user_ratings表非常简单.它包含该特定用户(user_id,item_id和user_item_rating)给出的每项评级.slope_one表遵循OpenSlopeOne的默认架构:item_id1,item_id2,次数和评级.

使用以下SQL过程填充slope_one表:

CREATE PROCEDURE `slope_one`()
begin                    
    DECLARE tmp_item_id int;
    DECLARE done int default 0;                    
    DECLARE mycursor CURSOR FOR select distinct item_id from user_ratings;
    DECLARE CONTINUE HANDLER FOR NOT FOUND set done=1;
    open mycursor;
    while (!done) do
        fetch mycursor into tmp_item_id;
        if (!done) then
            insert into slope_one (select a.item_id as item_id1,b.item_id as item_id2,count(*) as times, sum(a.rating-b.rating) as rating from user_ratings a, user_ratings b where a.item_id = tmp_item_id and b.item_id != a.item_id and a.user_id=b.user_id group by a.item_id,b.item_id);
        end …
Run Code Online (Sandbox Code Playgroud)

php collaborative-filtering

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

NSURLCache的removeCachedResponseForRequest无效

我创建了一个NSURLCache子类,它强制在指定的时间内缓存响应.这很好用,缓存的项目按预期过期.但是,当尝试使用NSURLCache的removeCachedResponseForRequest:方法强制删除缓存的响应时,我遇到了问题.

我想要实现的是允许用户强制立即重新加载远程数据.为此,我在发出请求时传递"ignoreCache"标志.我正常构建我的NSURLRequest,但要求我的NSURLCache删除给定请求的任何先前缓存的响应.但是,这似乎没有任何影响,因为缓存的结果仍然存在并在执行请求时使用.

NSURLCache周围的文档相当稀少.NSURLCache标头声明传递给NSURLRequest removeCachedResponseForRequest:用作查找关联的NSCachedURLResponse对象的键,但是关于该比较的后勤的信息很少.NSURLCache类是否期望接收生成缓存响应的相同NSURLRequest实例,或者只是比较它所代表的NSURL?

希望有人可以指出我正确的方向.

var error: NSError? = nil
var URLRequest: NSMutableURLRequest = self.operationManager.requestSerializer.requestWithMethod("GET", URLString: NSURL(string: request.URL, relativeToURL: self.operationManager.baseURL).absoluteString, parameters: request.parameters, error: &error)
URLRequest.cachePolicy = NSURLRequestCachePolicy.ReturnCacheDataElseLoad

// We've been asked to ignore the cache, so remove our previously cached response
if ignoreCache == true {
    NSURLCache.sharedURLCache().removeCachedResponseForRequest(URLRequest)
}
Run Code Online (Sandbox Code Playgroud)

这是我的NSURLCache子类中的Swift代码供参考:

// MARK: - NSURLCache
override func cachedResponseForRequest(request: NSURLRequest!) -> NSCachedURLResponse! {
    var cachedResponse: NSCachedURLResponse? = super.cachedResponseForRequest(request)
    if(cachedResponse != nil && cachedResponse!.userInfo != nil) {
        var cacheDate: NSDate? = …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch caching nsurlrequest ios afnetworking

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

处理对多关系中 Core Data 对象的删除

使用 Core Data,我希望建立一个具有以下对多关系的标记系统:

article.tags <<------->> tag.articles
Run Code Online (Sandbox Code Playgroud)

在这种情况下, anarticle可以有多个tags,并且tags可以将这些相同的分配给多个articles。每当 anarticle的标签被编辑时,我会删除所有以前tags与 相关的标签,article并重新添加那些仍然相关的标签,如下所示:

// Remove any existing tags from this article
if(article.tags.count)
{
    NSSet *existingEventTags = [article.tags copy];
    for (NSManagedObject *tag in existingEventTags)
    {
        [[article mutableSetValueForKey:@"tags"] removeObject:tag];
        [moc deleteObject:tag];
    }
}

// Now re-assign any applicable tags to this article
for(NSString *tag in tags)
{
    Tag *existingTag = [self existingTagWithString:tag];
    if(existingTag)
    {
        [article addTagsObject:existingTag];
    }
    else
    {
        NSEntityDescription *entityDescription …
Run Code Online (Sandbox Code Playgroud)

iphone core-data ios

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

C"未释放指针被释放"错误

我正在尝试在线发现的四叉树实现,但是作为以下(剥离)_node_release函数的一部分,间歇性地接收"释放指针未被分配"错误:

static void _node_release(node* node)
{
    if(node->subnodes[0])
    {
        for(size_t i=0;i<4;i++)
        {
            _node_release(node->subnodes[i]);
            free(node->subnodes[i]); // this causes "pointer being freed was not allocated" errors
        }
    }
    // ...

    free(node); // the node passed to _node_release is free'd here
}
Run Code Online (Sandbox Code Playgroud)

假设这个节点在这里被错误地免费两次,我是否正确?_node_release函数free是传递给它的节点,但是在对_node_release进行递归调用之后,代码也试图释放每个后续子节点.

c free memory-management

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

SceneKit 中的自定义顶点属性

我正在使用 SceneKit 生成一些自定义几何图形。这工作正常,但我正在努力寻找一种方法来包含自定义顶点属性。具体来说,我希望每个顶点包含一个额外的 SCNVector3。

我发现了很多使用 shaderModifiers 来包含依赖于自定义统一值的GLSL/Metal 代码的示例,但还没有遇到包含顶点属性的方法。SceneKit 是否可以做到这一点,还是我的想法倒退了?

macos opengl-es ios scenekit

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

金属着色器中的 GLSL gl_FragDepth 等效项

我正在寻找在金属着色器中调整片段深度。以前我是通过 GLSL 的内置输出变量gl_FragDepth 实现的。是否有在 iOS 上使用 Apple 的 Metal 着色器的等效方法?

opengl-es ios metal

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

暂时禁用NSArrayController的filterPredicate,或者咨询ManagedObjectContext?

我有一个 NSArrayController,它绑定到我的托管对象上下文中的一个类。在运行时,NSArrayController 可以应用许多不同的过滤谓词。在某些时间间隔,我想迭代 NSArrayController 的内容,而不管应用于它的过滤谓词如何。

为此,我将 filterPredicate 设置为 nil,然后在迭代数组后恢复它。这似乎有效,但我想知道这是否是最佳实践?我应该手动轮询我的托管对象上下文吗?

NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
    // ...
}
[myArrayController setFilterPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

cocoa core-data nsarraycontroller

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

为什么 Metal 没有 rgb8Unorm MTLPixelFormat?

我有许多不需要 alpha 通道的纹理。目前,我正在使用MTLPixelFormat rgba8Unorm选项加载这些,但这似乎有点浪费。是否有我遗漏的选项,或者忽略纹理数据的 3 个 8 位组件格式背后的其他一些基本原理?

ios metal

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