小编Mav*_*1st的帖子

通过保持宽高比和宽度来调整UIImage的大小

我在许多文章中看到通过保持纵横比来调整图像大小.这些函数在调整大小时使用RECT的固定点(宽度和高度).但是在我的项目中,我需要仅根据宽度调整视图大小,应根据宽高比自动获取高度.有人帮助我实现这一目标.

iphone objective-c aspect-ratio fixed-width ios

131
推荐指数
10
解决办法
13万
查看次数

在NSURLRequest中通过POST发送JSON

我在使用REST API向服务器发送JSON时遇到问题.这是我使用的代码:

NSString *jsonPostBody = [NSString stringWithFormat:@"'json' = '{\"user\":{\"username\":"
                          "\"%@\""
                          ",\"password\":"
                          "\"%@\""
                          "}}'",
                          [username stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                          [password stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];       
NSData *postData = [jsonPostBody dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *apiPathParams = [NSString stringWithFormat:@"%@",
                           @"getUser"
                           ];

NSURL *url = [NSURL URLWithString:[[apiPath retain] stringByAppendingString:apiPathParams]];    
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                   timeoutInterval:180.0];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
NSString* postDataLengthString = [[NSString alloc] initWithFormat:@"%d", [postData length]];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:postDataLengthString forHTTPHeaderField:@"Content-Length"];
[self internalRequest:request];
Run Code Online (Sandbox Code Playgroud)

这就是API的样子,如果它是一个html表单:

<form method="post" action="someAPI-URL">
<input name="json" value="{"user":...}" />
</form>
Run Code Online (Sandbox Code Playgroud)

这是我将POST数据添加到请求时的样子:

json={"user":{"username":"someUser","password":"somePassword"}}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我不知道POST数据没有到达服务器.我在dataString的格式化方面做错了吗?我如何格式化我的dataString以便它匹配String如上所示的表格将传递给服务器?

任何帮助将受到高度赞赏.

PS我宁愿不使用ASIHttpRequest,因为我接管了其他人的项目,除了这个post-request之外,其他所有请求都正常.因此,将整个批量更改为其他连接框架将非常耗时.

这是internalRequest Method的源代码 …

iphone post objective-c nsurlconnection

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

如何在具有参考点网项目的xamarin项目的azure devops中创建YAML构建管道

我最近将我的资源转移到了天蓝色的devOps上,以使用cd / ci和所有其他不错的东西。现在,我创建了我的第一个构建管道来构建Xamarin项目的android部分。但是我最终收到一条错误消息,找不到参考项目的资源,我将还原软件包并重试。现在,由于我拥有azure托管的构建代理而不是自托管的,因此我无法在进行构建之前正确设置代理。但是我想应该有一些方法可以正确地配置构建管道来完成所有必要的工作。它只是我不知道我应该添加到我的yaml文件中以修复此问题的线索。

这是我收到的错误消息:

##[error]C:\Program Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file 'd:\a\1\s\*****\*****\*****\*****\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.
Run Code Online (Sandbox Code Playgroud)

问题在于该文件应通过编译引用的项目来生成,而不是nuget包的一部分。

据我自己了解,这是我的构建管道。

# Xamarin.Android
# Build a Xamarin.Android project.
# Add steps that test, sign, and distribute an app, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/xamarin

trigger:
- Share/main

pool:
  vmImage: 'VS2017-Win2016'

variables:
  buildConfiguration: 'Debug'
  outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)'

steps:
- task: NuGetToolInstaller@1
  inputs:
    versionSpec: 5.1.0

- task: NuGetCommand@2
  displayName: 'Restore NuGet Packages'
  inputs:
    command: restore
    restoreSolution: '**/*.sln'    

- task: …
Run Code Online (Sandbox Code Playgroud)

azure xamarin.android xamarin azure-devops azure-pipelines

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

几次调用后,不调用AudioServicesAddSystemSoundCompletion回调方法

我在我的应用程序中使用AudioServicesAddSystemSoundCompletion来检测声音何时完成,然后触发其他一些操作.出于某种原因,我得到以下行为,它适用于前8到12个声音(这至少是我测试的),然后不再调用为AudioServicesAddSystemSoundCompletion定义的回调.

这是我创建声音的代码:

NSString *soundPath = [[NSBundle mainBundle] pathForResource:[[soundFileName componentsSeparatedByString:@"."]objectAtIndex:0]ofType:@"wav"];
Log2(@"soundFileName: %@", soundFileName);
CFURLRef soundURL = (CFURLRef)[NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID(soundURL, &sound);
AudioServicesAddSystemSoundCompletion(sound, nil, nil, playSoundFinished, (void*) self);
Run Code Online (Sandbox Code Playgroud)

播放声音:

AudioServicesPlaySystemSound(sound);
Run Code Online (Sandbox Code Playgroud)

并在声音结束时做一些事情:

void playSoundFinished (SystemSoundID sound, void *data) {
    pf //Typedef for PRETTY_FUNCTION log

    AudioServicesRemoveSystemSoundCompletion(sound);
    [AppState sharedInstance].b_touchesFREE = TRUE;

    if([[AppState sharedInstance].ma_cardsToCheck count] >= 2)
{        
        [[AppState sharedInstance].vc_spiel pairFound];
}   

    if (((Card*)data).b_isTurnedFaceUp) {
        [AppState sharedInstance].i_cardsTurnedFaceUp --;
    }

    [(Card*)data release];
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么它最初几次工作然后停止工作?

Thx提前.Maverick1st

*****编辑*****我刚刚发现,当我尝试第二次播放声音时会发生这种情况.可能是,我忘了把它放到某处?但我一直认为AudioServicesRemoveSystemSoundCompletion处理内存管理.

*****再一次编辑*****所以在Stackoverflow上发布这个让我对这个问题有了更深入的思考,我现在得到了解决方案(至少我认为我得到了它;)).不幸的是,我无法在接下来的7.5小时内为自己回答这个问题,所以我必须编辑这个问题.

只是为了让你更好地理解我的问题.

我正在编写一个记忆游戏,每张卡片都是一个包含正面和背面图像的类,以及它转身时播放的声音.因为我只是在创建卡片时初始化声音,我不确定每次声音结束时是否应该调用AudioServicesRemoveSystemSoundCompletion.

所以我只是在没有AudioServicesRemoveSystemSoundCompletion的情况下尝试过它现在可以正常工作了.

我现在唯一不确定的是,这是否会导致内存泄漏或类似的事情.但是现在它工作正常.

如果有人可以告诉我,如果内存使用情况确实如此,我会真的发生.:)

最好的祝福.Maverick1st

iphone xcode objective-c ipad

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

如果我的应用程序崩溃,我该如何保存在userdefaults中

在我的通用应用程序中,我有一些应用程序崩溃的问题.我无法重现崩溃的原因,所以我想至少让应用程序"保存",以便它可以再次重新启动,如果它已崩溃.问题是,如果我的应用程序崩溃,可能会因为一些混乱的用户默认值而无法再次启动.因此,如果我可以在我的应用程序在启动时崩溃后删除我的用户默认值,则用户至少可以使用该应用程序.

到目前为止我的目标.现在我只需要知道当我的应用程序在启动时崩溃时我可以检测并保存它.

我的第一个目的是在应用程序崩溃时在用户默认值中设置一个标志,然后,如果设置了标志,则重置用户默认值.但我不知道 - (void)applicationWillTerminate:(UIApplication *)application
当我的应用程序崩溃时是否会被调用.即使它被称为.如何检测它在启动时是否崩溃?

欢迎大家提出意见.

问候和提前Maverick1st

iphone crash xcode objective-c ipad

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