小编Dat*_*kar的帖子

如何在 SwiftUI 中使用属性字符串

如何在 SwiftUI 中使用 AttributedString。没有可用于在文本中使用 AttributedString 的 API

swift swiftui

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

GLKit中的纹理映射不仅适用于设备

我使用此链接中的代码来映射人脸的纹理.此代码使用GLKIT渲染图像.代码在模拟器中工作正常,但如果我在设备中运行它无法正常工作,则代码相同.以下是图像的屏幕截图,它在设备中工作,而不是在我的ipad中.

我用来加载纹理的代码:

- (void)loadTexture:(UIImage *)textureImage
{
    glGenTextures(1, &_texture);
    glBindTexture(GL_TEXTURE_2D, _texture);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    CGImageRef cgImage = textureImage.CGImage;
    float imageWidth = CGImageGetWidth(cgImage);
    float imageHeight = CGImageGetHeight(cgImage);
    CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageWidth, imageHeight, 0, GL_RGBA,  
    GL_UNSIGNED_BYTE, CFDataGetBytePtr(data));
}
Run Code Online (Sandbox Code Playgroud)

模拟器的图像:

在模拟器中输出

设备中的相同代码提供以下输出:

设备输出

有什么东西我不见了?

iphone opengl-es objective-c ios glkit

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

不兼容的块指针类型将'int(^)(__ strong id,__strong id)'发送到'NSComparator'类型的参数

从xcode 5.0移动到5.1时,在GPUImage Library中获得以下错误.在google上搜索之后我发现我需要像这样发送int [NSNumber numberWithInt:number]但问题是我没有控制在下面给出的代码中传递给sortedArrayUsingComparator的值.

错误日志:

不兼容的块指针类型将'int(^)(__ strong id,_ strong id)'发送到'NSComparator'类型的参数(又名'NSComparisonResult(^)( _ strong id,__strong id)')

此行出错:NSArray*sortedPoints = [points sortedArrayUsingComparator:^(id a,id b){

- (id) initWithCurveFile:(NSString*)curveFile
{    
    self = [super init];
    if (self != nil)
    {
        NSString *bundleCurvePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: curveFile];

        NSFileHandle* file = [NSFileHandle fileHandleForReadingAtPath: bundleCurvePath];

        if (file == nil)
        {
            NSLog(@"Failed to open file");

            return self;
        }

        NSData *databuffer;

        // 2 bytes, Version ( = 1 or = 4)
        databuffer = [file readDataOfLength: 2];
        version = CFSwapInt16BigToHost(*(int*)([databuffer …
Run Code Online (Sandbox Code Playgroud)

objective-c gpuimage xcode5.1

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

值转换问题:隐式转换失去整数精度:'NSInteger'(又名'long')到'int32_t'(又名'int')

我已将我的Xcode版本从5.0升级到5.1并在GPUImage库GPUImageVideoCamera.m中开始出现错误:301:54:隐式转换失去整数精度:'NSInteger'(又名'long')到'int32_t'(又名'int') )

在这行的下面的函数"connection.videoMaxFrameDuration = CMTimeMake(1,_frameRate);" 发生错误.

- (void)setFrameRate:(NSInteger)frameRate;
{

    _frameRate = frameRate;

    if (_frameRate > 0)
    {

        for (AVCaptureConnection *connection in videoOutput.connections)
        {

            if ([connection respondsToSelector:@selector(setVideoMinFrameDuration:)])

                connection.videoMinFrameDuration = CMTimeMake(1, _frameRate);

            if ([connection respondsToSelector:@selector(setVideoMaxFrameDuration:)])

                connection.videoMaxFrameDuration = CMTimeMake(1, _frameRate);

        }
    }

    else

    {
        for (AVCaptureConnection *connection in videoOutput.connections)

        {
            if ([connection respondsToSelector:@selector(setVideoMinFrameDuration:)])

                connection.videoMinFrameDuration = kCMTimeInvalid; 
                                // This sets videoMinFrameDuration back to default

            if ([connection respondsToSelector:@selector(setVideoMaxFrameDuration:)])

                connection.videoMaxFrameDuration = kCMTimeInvalid; 
                                // This sets videoMaxFrameDuration back to default

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

objective-c ios gpuimage xcode5.1

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

点击已选择的段时检测事件

嗨我想在触摸已经选定的片段时获得活动.

我已实施以下解决方案

import UIKit

class MARSSegmentController: UISegmentedControl {

    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func drawRect(rect: CGRect) {
    // Drawing code
    }
    */

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        let oldValue:NSInteger = self.selectedSegmentIndex
        super.touchesBegan(touches, withEvent: event)
        if oldValue == self.selectedSegmentIndex{
            sendActionsForControlEvents(UIControlEvents.ValueChanged)
        }
    }    
} 
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我点击非选定的段,ValueChanged事件将被执行两次.

实现点按手势无效.表示当我点击未选择的片段时,它会在使用点按手势时显示旧的所选片段.

如有任何解决方案请建议.

uisegmentedcontrol ios swift

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

[valueForUndefinedKey:]:此类不是键约会日期的键值编码兼容. - 迅速

我想在下面排序一个对象数组是我的函数来排序对象数组

    class func Fn_SortByParameter(arrayToSort:NSMutableArray,paramName:NSString!, isAscending:Bool!){
    var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: paramName, ascending: isAscending, selector: Selector("localizedCompare:"))
    var sortDescriptors:NSArray = NSArray(object: sortDescriptor)
    var sortedArray:NSArray = arrayToSort.sortedArrayUsingDescriptors(sortDescriptors)
    arrayToSort.removeAllObjects()
    arrayToSort.addObjectsFromArray(sortedArray)
}
Run Code Online (Sandbox Code Playgroud)

class func Fn_SortByParameter(arrayToSort:NSMutableArray,paramName:NSString!, isAscending:Bool!){
    var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: paramName, ascending: isAscending)
    var sortDescriptors:NSArray = NSArray(object: sortDescriptor)
    var sortedArray:NSArray = arrayToSort.sortedArrayUsingDescriptors(sortDescriptors)
    arrayToSort.removeAllObjects()
    arrayToSort.addObjectsFromArray(sortedArray)
}
Run Code Online (Sandbox Code Playgroud)

数组包含以下类的对象

class Appointment: NSObject {

     var id:Double!
      var status:NSString!
      var clinic:Clinic!
      var medicalCase:MedicalCase!
      var patient:Patient!
      var appointmentDate:Double! // Unix timestamp
      var reasonForVisit:NSString!
      var cancellationReason:NSString!
      var visit:Visit!
    }
Run Code Online (Sandbox Code Playgroud)

当我试图排序它崩溃与下面的错误

[valueForUndefinedKey:]:此类不是键约会日期的键值编码兼容.

函数调用排序 …

sorting ios swift

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