小编Agg*_*sor的帖子

UIImageWriteToSavedPhotosAlbum选择器语法问题

努力让UIImageWriteToSavedPhotosAlbum在swift中运行https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/index.html#//apple_ref/c/func/UIImageWriteToSavedPhotosAlbum

遗憾的是,文件仅在目标C中.

这是我的代码:

func saveImage()
{
  UIImageWriteToSavedPhotosAlbum(uiimage, self, "saveImageComplete:::", nil)
}

func saveImageComplete(image:UIImage,err:NSError,context:UnsafePointer<()>)
{
  loadLastPhotoIntoGalleryIcon()
}
Run Code Online (Sandbox Code Playgroud)

但问题是它会抛出NSInvalidArgumentException并带有无法识别的选择器:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'app.PhotoEditor<0x14a1e400> does not respond to selector 
saveImageComplete:::'
Run Code Online (Sandbox Code Playgroud)

你能告诉我的语法有什么问题吗?我如何正确地指定这个选择器?根据我的理解,每个:代表方法所期望的1个参数,因为它有3个参数我给它3:'s.

谢谢!

xcode objective-c ios swift

7
推荐指数
3
解决办法
4985
查看次数

检查字符串名称是否与images.xcassets中的资产匹配

我google的所有内容都会出现关于ALAsset的答案.

我有一个images.xcassets文件夹和一堆资产.

我想知道基于字符串的资产是否存在.

例如 if(images.xcassets.contains("assetName") == true)

你知道如何根据字符串检查资产是否存在吗?

ios xcasset swift xcode6

7
推荐指数
3
解决办法
5479
查看次数

图书馆与图书馆项目与外部图书馆的区别

在Android Studio IDE中,您可以添加.jar文件.您还可以添加" 库项目 "的整个项目.此外,还有Android库(来自Gradle)作为外部库添加.

.罐 罐子

图书馆计划 图书馆计划

外部图书馆 外部图书馆

我明白了.jars就是这样.但是,为什么需要添加其他库(库项目),这些库具有自己的整个构建文件(如gradle,res,src等).而且进一步使我的理解变得复杂,Gradle下载的那些被添加为"外部库",并且具有.jar文件和res文件夹.

你能解释为什么库可以添加为.jar,整个项目或外部库吗?

android jar gradle android-studio android-gradle-plugin

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

Android:支持的相机预览尺寸是错误的宽高比

解决方案:我实际上并没有设置相机预览,而是缩放它附带的默认预览.您需要将参数分配回相机,因为 _camera.getParamters.setPreviewSize() 不起作用!

我正在努力让Android相机在手机上预览(理想情况下是全屏).

然而,我遇到了一种情况,我觉得硬件和软件都在密谋反对我:/

我得到了相机支持的屏幕尺寸列表.对于一半的手机(我的12个设备中的大约6个),当我将预览匹配设置为最接近屏幕的预览时,这可以正常工作.

但是在另一半,预览被拉伸和倾斜.有许多帖子存在并声称要解决这个问题,但没有.

The reason I am finding is this: the list of supported camera screen sizes that I am getting from the hardware itself is wrong. Why? Because when manually set the camera up to one of its highest supported sizes the aspect ratio is still off:

_camera.getParameters().setPreviewSize(720,1280);
getHolder().setFixedSize(720, 1280);
Run Code Online (Sandbox Code Playgroud)

For this phone, the screen size is 768 x 1280. The closest supported screen size is 720 x 1280. Setting it to this …

android surfaceview android-camera

6
推荐指数
0
解决办法
3353
查看次数

Xcode 6.4 Swift单元测试无法编译:"未找到GPUImage.h""无法导入桥接头"

我的Xcode项目构建并正常工作.它有Swift和Objective-C代码.

它已安装GPUImage.

我为它添加了一个单元测试,现在它将不再编译:

找不到'GPUImage.h'文件

无法导入桥接头

以下是我找到并尝试过的解决方法:

  1. 设置产品模块名称以匹配我的项目: 没有工作 http://codesheriff.blogspot.co.il/2015/05/importing-swift-code-from-objective-c.html

  2. 确保我的构建阶段匹配:没有工作

  3. 扩展标题搜索路径:没有工作 /sf/answers/2093201211/

这个问题似乎有同样的问题: 将单元测试目标添加到xcode - 未能导入桥接头不会消失

如果你知道为什么XCode找不到我的BridgingHeader.h或GPUImage.h那么请分享.我正在尝试使用Travis CI进行单元测试,但无法通过编译步骤.

xcode unit-testing objective-c travis-ci swift

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

将GameObject转换回泛型类型<T>

我正在为Unity实现一个深度对象复印机.

我在这里找到了这个很好的序列化/反序列化方法:https://stackoverflow.com/a/78612/3324388

但是我遇到了MonoBehaviour对象.如果类型是GameObject,我需要使用Instantiate而不是序列化.所以我添加了一张支票:

if (typeof(T) == typeof(GameObject))
{
    GameObject clone = Instantiate(source as GameObject);
    T returnClone = clone as T;
    return returnClone;
}
Run Code Online (Sandbox Code Playgroud)

我可以将源代码转换为GameObject(使用as),但是当我尝试反向执行时,它会失败

type参数T不能与as参数一起使用,因为它没有类类型约束,也没有"类"约束.

如果我尝试将它像:

if (typeof(T) == typeof(GameObject))
{
    GameObject clone = Instantiate(source as GameObject);
    T returnClone = (T)clone;
    return returnClone;
}
Run Code Online (Sandbox Code Playgroud)

无法将GameObject转换为类型 T

我觉得我很接近但是我不能完全正确地进行投射.你知道我错过了什么让这个工作吗?

如果我将类型转换为符合,则错误仍然存​​在: 在此输入图像描述

c# serialization deep-copy unity-game-engine deserialization

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

PHP服务器上的iOS 7收据验证问题

2天的不间断搜索,我在IAP的一个重要问题上空白.我们需要服务器来验证收据,响应始终是21002.

在我发送的客户端上

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
NSDictionary* post = @{@"receipt":[receipt base64EncodedStringWithOptions:0]};
[ServerRequest requestWithUrl:url Callback:nil SendToIM:NO PostData:post];//does standard _POST to our php server
Run Code Online (Sandbox Code Playgroud)

这是一个沙箱收据作为base64字符串,然后才能到达服务器

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
Run Code Online (Sandbox Code Playgroud)

在服务器上

$postData = json_encode(
            array('receipt-data' => $receipt));
Run Code Online (Sandbox Code Playgroud)

//标准cURL帖子并从Apple Sandbox Server获取

我已经阅读了关于此的所有示例和论坛帖子,似乎无法使其正常工作.

我最好的猜测是我的收据编码错误,但我尝试了每种格式选项,我总是得到21002(在我的服务器上).

这里有什么我想念的吗?基本上我正在尝试:1.将NSData收据作为字符串发送到服务器2.让我的服务器ping Apple服务器3.处理有效或无效的收据问题

看来我的第一步是错的,但我不确定.我使用base64encode发送收据数据是错误的吗?

我的服务器上有什么东西需要保留格式吗?

任何和所有的建议非常感谢.

更新:

这是我用来将它发送到服务器的代码(一旦它到达服务器,它正在剪切哈希码中的+)

for (NSString* k in _post)       
{            
    postDataStr = [NSString stringWithFormat:@"%@&%@=%@", postDataStr,k,_post[k]];      
}

_req = [NSMutableURLRequest requestWithURL:_url cachePolicy:nil timeoutInterval:15.0f];    
[_req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];    
[_req setHTTPMethod:@"POST"];    
[_req setHTTPBody:[postDataStr dataUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

回答:

当发送到服务器时,+被从我的字符串中删除.我没有做正确的URL编码.我用%2B取代了+它现在有效

php in-app-purchase ios7

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

用于Unity3D的Visual Studio 2015错误"不兼容的项目"

我让UnityVS 2013工作得很好.我安装了VS 2015并卸载了VS 2013.我为Unity安装了新的VS插件并生成了项目文件.

我从这里安装了Unity3D插件: UnityVS插件2015

但现在当我尝试打开项目时,我得到了

不支持此版本的Visual Studio无法打开以下项目.可能未安装项目类型或此版本的Visual Studio可能不支持它们.有关启用这些项目类型或以其他方式迁移资产的详细信息,请在单击"确定"后显示"迁移报告"中的详细信息. - UnityVS.ProjectName.CSharp,"C:\〜\ UnityVS.ProjectName.CSharp.csproj" - UnityVS.ProjectName.CSharp.Editor,"C:\〜\ UnityVS.ProjectName.CSharp.Editor.csproj"

需要进行非功能性更改Visual Studio将自动对以下项目进行非功能性更改,以使它们能够在Visual Studio 2015,Visual Studio 2013,Visual Studio 2012和Visual Studio 2010 SP1中打开.项目行为不会受到影响. - UnityVS.ProjectName,"C:\〜\ UnityVS.ProjectName.sln"

我试过重新安装.我删除了所有解决方案和项目文件,并尝试从头开始重新创建它们.我正在运行Windows 8.1.

如果您知道为什么这个项目可能无法正常工作,我会全力以赴.

在迁移报告中,我收到此错误:

未找到此项目类型所基于的应用程序.请尝试此链接以获取更多信息:http: //go.microsoft.com/fwlink/?LinkID = 299983&projecttype = E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1

c# unity-game-engine visual-studio sln-file visual-studio-2015

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

AVAudioSession 音频调光错误:停用正在运行 I/O 的音频会话

我正在播放几种声音,每个声音都会使背景音频变暗。完成后,我恢复背景音频。每次播放其中一个音频文件时,背景都会变暗(根据需要)。当最后一个音频完成播放时,背景音频将恢复(也需要)。但是,大约 5 秒后,它会抛出此错误并再次使音频变暗(这不是我想要的,因为现在所有声音都已完成)。

错误:[0x19c9af310] AVAudioSession.mm:646:-[AVAudioSession setActive:withOptions:error:]:停用正在运行 I/O 的音频会话。在停用音频会话之前,应停止或暂停所有 I/O。

据我所知,我正在停止并删除所有音频。

我在这里找到了 1 个帖子:

iOS8 AVAudioSession setActive 错误

但该解决方案对我不起作用。这是我的音频播放器类。如果你能告诉我可能会发生什么,我将不胜感激。

import Foundation
import AVFoundation

private var _singleton:O_Audio? = O_Audio()
private var _avAudioPlayers:Array<AVAudioPlayer> = []

//Manages dimming and resuming background audio
class O_Audio:NSObject, AVAudioPlayerDelegate
{
    class var SINGLETON:O_Audio
    {
        if(_singleton == nil)
        {
            _singleton = O_Audio()
        }
        return _singleton!
    }

    class func dimBackgroundAudio()
    {
        AVAudioSession.sharedInstance().setActive(true, error: nil)
    }

    class func restoreBackgroundAudio()
    {
        AVAudioSession.sharedInstance().setActive(false, error: nil)
    }

    class func playSound(path:String)
    {
        var sound = …
Run Code Online (Sandbox Code Playgroud)

audio xcode avaudioplayer avaudiosession swift

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

简化Java(by hgoebl)问题,缩小点列表始终为大小2

我正在尝试从https://github.com/hgoebl/simplify-java实现缩减算法

我浏览了他的测试代码,并试图提出我认为正确的逻辑。

我正在获取Location对象列表,将它们转换为Point,运行归约算法,然后将归约点转换回Location对象列表。

问题在这里:

 float[][] simplified = simplify.simplify(points2D, 10000.0f, true);
Run Code Online (Sandbox Code Playgroud)

它总是以2的大小出现。显然我做错了什么,但是我不确定是什么。您能确定我的实施有什么问题吗?

方法#1失败

public static ArrayList<Location> reducePath(List<Location> allLocations, double tolerance)
    {
        // All the points in rows, with columns latitude and longitude
        float[][] points2D = new float[allLocations.size()][2];

        // Convert Location to Point
        int i = 0;
        for (Location loc:allLocations)
        {
            points2D[i][0] = (float)loc.getLatitude();
            points2D[i][1] = (float)loc.getLongitude();

            i++;
        }

        PointExtractor<float[]> pointExtractor = new PointExtractor<float[]>()
        {
            @Override
            public double getX(float[] point)
            {
                return point[0];
            } …
Run Code Online (Sandbox Code Playgroud)

java douglas-peucker

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