小编Luk*_*uke的帖子

如何在我的应用程序中使用iOS的标准红色数字徽章?

我知道在主屏幕上为应用程序的图标添加红色数字徽章是微不足道的.在我的应用程序中获得这样的徽章的最佳方法是什么?我在网上找到的一些类可以做到这一点,比如MKNumberBadgeView,但我发现没有一个看起来完全正确.例如,就我所见,Facebook完美地在应用程序中实现了红色徽章.他们只是通过反复试验来建立自己的徽章吗?任何建议,将不胜感激.

谢谢,

卢克

iphone objective-c badge

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

如何在视图中绘制没有边距的字符串?

我无法NSAttributedString在视图中绘制一个没有边距的东西.这是我的代码:

NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:72.0f]};
NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"Hello"
                                                             attributes:attributes];
[string drawWithRect:rect
             options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesDeviceMetrics
             context:nil];
Run Code Online (Sandbox Code Playgroud)

这会导致以下行为:

用边距绘制的字符串

请注意左侧和顶部的边距.

  1. 如何避免这些边距并使文本完全符合包含视图的边缘?我想要的是实际绘制的文本与视图的边缘相交,也就是说,在任何字形中绘制的最顶部像素应该在视图的顶部,并且在任何字形中绘制的最左边的像素位于视图的左侧.风景.
  2. 假设1是可能的,有没有办法可以得到绘制文本的实际宽度和高度,这样我就可以计算字体大小和字距以使文本符合底部和右边缘?

我意识到可能有一些方法来对齐文本而不使其符合视图的边缘,但是使其符合视图的边缘将允许我使用自动布局等直观地使用视图.

当字符串包含前导或尾随空格时,我不关心行为.

如果无法做到这一点NSAttributedString,是否有其他方法可以获得您建议的此行为?

澄清一下,这是我想要的第一号.

期望的行为

string uikit uiview nsattributedstring ios

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

提示SKStoreReviewController.requestReview()之间有最短时间吗?

我了解到,当我们打电话时SKStoreReviewController.requestReview(),Apple会根据各种因素决定是否显示评论提示.我很好奇的是我们的应用程序提示之间的最短时间.根据Apple的说法,有一些限制(强调我的):

如果用户尚未提供反馈并且最近没有提出请求,则系统会显示应答内提示,要求进行评级和可选的书面审核.

我知道除了文档中的内容之外,对此调用的行为没有任何保证,但我想知道在实践中会发生什么.

我想弄清楚我们是否需要实现我们自己的逻辑来等待一段合理的时间才能再次请求提示,或者Apple的"最近"定义是否足以达到此目的.

review app-store ios swift skstorereviewcontroller

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

XCTest不链接iOS框架

我正在使用命令行运行iOS模拟器单元测试xctest.首先,我构建目标:

xcodebuild -project "build/MyApp.xcodeproj" -target "MyApp Unit Tests" -configuration "Debug" -sdk "iphonesimulator" build
Run Code Online (Sandbox Code Playgroud)

然后运行xctest测试包:

xcrun xctest "build/build/Debug-iphonesimulator/MyApp Unit Tests.xctest"
Run Code Online (Sandbox Code Playgroud)

这工作正常,可以链接/ System/Library/Frameworks中的框架,如安全性.但是xctest一旦我添加了像MobileCoreServices这样的iOS SDK框架,就会中断,给我:

Library not loaded: /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices
Run Code Online (Sandbox Code Playgroud)

单元测试在Xcode中运行良好,单元测试目标包含$(PLATFORM_DIR)/Developer/Library/Frameworks在其框架搜索路径中.

有人知道xctest找到iOS框架的正确方法吗?

xcode unit-testing ios xcrun xctest

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

如果index.lock存在,有没有办法让git自动重试命令?

我使用了一些Xcode的源代码控制功能,特别是主编辑器中的blame功能,但是在命令行中使用git来实现我的所有实际版本控制.这意味着,通常,命令行上的git命令会失败并显示以下消息:

fatal: Unable to create '/path/to/repo/.git/index.lock': File exists.
Run Code Online (Sandbox Code Playgroud)

Xcode正在创建此文件以锁定repo,因为它运行自己的git命令.我已经关闭了"首选项"中的所有不必要的源控制选项(自动刷新本地状态,自动刷新服务器状态,以及自动添加和删除文件.)

我目前的策略是重试命令直到它工作,这很少需要多次尝试.

有没有办法让Xcode的创建频率更低index.lock

或者,有没有办法让git自动重试命令,直到它们成功,如果它们以这种方式失败?

git version-control xcode locking xcode7

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

如何在ReactiveCocoa 5中将RACSignal转换为SignalProducer?

在ReactiveCocoa 4中,我们可以将a RACSignal转换为SignalProducer使用toSignalProducer().ReactiveCocoa 5中不存在此方法,那么我们如何才能做同样的事情呢?

objective-c reactive-cocoa swift reactive-cocoa-4 reactive-cocoa-5

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

来自AudioUnitRender的错误-50

我在以下上下文中从AudioUnitRender收到错误-50(无效参数).我正在使用这个Pitch Detector示例应用程序作为我的起点,它运行正常.我项目中唯一的主要区别是我也使用远程I/O单元进行音频输出.音频输出工作正常.这是我的输入回调和我的初始化代码(为简洁起见,删除了错误检查).我知道这很多但错误-50确实给了我很少的信息,问题可能在哪里.

输入回调:

OSStatus inputCallback( void* inRefCon, 
                            AudioUnitRenderActionFlags  *ioActionFlags, 
                            const AudioTimeStamp        *inTimeStamp, 
                            UInt32                      inBusNumber, 
                            UInt32                      inNumberFrames, 
                            AudioBufferList             *ioData) {

    WBAudio* audioObject= (WBAudio*)inRefCon;

    AudioUnit rioUnit = audioObject->m_audioUnit;
    OSStatus renderErr;
    UInt32 bus1 = 1;

    renderErr = AudioUnitRender(rioUnit, ioActionFlags, 
                                inTimeStamp, bus1, inNumberFrames, audioObject->m_inBufferList );
    if (renderErr < 0) {
        return renderErr; // breaks here
    }

    return noErr;
} // end inputCallback()
Run Code Online (Sandbox Code Playgroud)

初始化:

- (id) init {

    self= [super init];
    if( !self ) return nil;

    OSStatus result;

    //! Initialize a buffer list …
Run Code Online (Sandbox Code Playgroud)

audio objective-c core-audio audiounit ios

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

C++对字符文字的排序有什么保证?

C++对字符文字的排序有什么保证?基本源字符集中是否有明确的字符排序?(例如'a' < 'z'保证是真的吗?怎么样'A' < 'z'?)

c++ character char character-encoding c++11

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

如何陷入调试器并继续使用iOS硬件?

在Mac OS X和iOS模拟器(均为x86)中,我们可以使用int3内联汇编中的指令陷阱到调试器(LLDB).这很好,因为它陷阱到特定的代码行,但我们可以通过在调试器中按下continue来立即继续.

有没有办法在iOS硬件上执行此操作?

对于一个较旧的问题的回答提到了raise(SIGINT)我所能看到的(从检查中signal.h)并不存在.另一个答案提到trap汇编指令,它会导致构建错误("无法识别的指令助记符").同样无法识别的是ARM文档中提到BKPT汇编指令.

我已经尝试__builtin_trap()了几乎,几乎做了我想要的,但不允许我继续.除非我使用jump +1或者手动推进指令指针,否则我会继续按下它register write pc `$pc+8\`,这比仅仅按下继续操作要方便得多.

我正在为使用Xcode 7.3.1的32位和64位设备构建iOS 9.任何帮助表示赞赏!

iphone debugging assembly breakpoints ios

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

为什么`git merge &lt;branch&gt; --squash`不提交?

在做正常的合并,例如git merge <branch>git创建一个合并提交并更新HEAD到提交当前分支。

git merge <branch> --squash但是,在进行壁合并时,例如,不会进行提交,而是说(在干净的合并中):

Squash commit -- not updating HEAD
Automatic merge went well; stopped before committing as requested
Run Code Online (Sandbox Code Playgroud)

这背后的原理是什么?对我来说,这似乎是普通合并和壁球合并之间的意外差异。如果正常合并和壁球合并之间的唯一区别是壁球合并壁球提交,对我来说将更直观。

git merge branch commit squash

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