小编Nic*_*ing的帖子

如何在Objective C中将float转换为int?

总新手问题,但这让我很生气!我正在尝试这个:

myInt = [myFloat integerValue]; 
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,说基本上integerValue不适用于浮点数.

我该怎么做?

floating-point casting objective-c

51
推荐指数
4
解决办法
11万
查看次数

比较两个NSManagedObjects

我有一些代码循环遍历NSManagedObjects数组,并在找到存储在实例变量中的某条记录时停止.我能够设法查看它们是否是同一记录(不是等效记录,特定记录)的唯一方法是比较objectID的URIRepresentations.这肯定不是最好的方法.我正在做:

if ([[[obj1 objectID] URIRepresentation] isEqualTo: [[_obj2 objectID] URIRepresentation]]) {
  NSLog(@"Match");
}
Run Code Online (Sandbox Code Playgroud)

以下代码永远不会匹配,即使我NSLog的objectIDs,并看到它们实际上是完全相同的.

if ([[obj1 objectID] isEqualTo: [_obj2 objectID]]) {
  NSLog(@"Match");
}
Run Code Online (Sandbox Code Playgroud)

core-data objective-c nsmanagedobject

21
推荐指数
3
解决办法
9388
查看次数

UIViewController动画停止工作

我的应用程序在iOS6中运行良好,但在未指定的即将推出的iOS版本中,由于NDA原因我无法命名,所有UIViewController过渡动画都停止工作.新视图立即就位.我不确定这个未指定的iOS未来版本是否是原因,因为我在iOS6中偶尔会看到这种情况.

有时动画开始工作一段时间然后不久就停止,让我觉得它是某种内存警告问题,但我的应用程序在大多数情况下使用相当合理的~125MB RAM.任何人都可以提供任何建议或事情来调查吗?

uiviewcontroller ios

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

需要一个好的正则表达式将URL转换为链接,但只留下现有的链接

我有大量用户提交的内容.它是HTML,可能包含URL.其中一些<a>已经是(如果用户是好的)但有时用户是懒惰的,只需输入www.something.com或最好是http://www.something.com.

我找不到一个像样的正则表达式来捕获URL但忽略那些紧靠双引号或'>'的权利.谁有一个?

html php regex url

20
推荐指数
3
解决办法
7773
查看次数

如何在CALayer支持的文本中处理不良文本呈现

NSTextFieldCALayer背景视图中呈现了一些可变文本.由于CALayer不支持对其上方任何文本进行文本呈现的子像素别名,因此该文本看起来很垃圾.

一些谷歌搜索揭示了原因,并且必须将文本渲染到不透明的背景上才能启用SPA.在这种情况下,如果可能的话,我想避免渲染到不透明的背景上.有更好的解决方法吗?

我完全可以将自己的文本呈现为NSImage,如果这会有所帮助,但我找不到任何已确认的报告.

它在Interface Builder中看起来非常好,所以我知道秘密就在这台计算机内的某个地方,只是为了摆脱困境.

core-animation objective-c text-rendering

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

NSScrollView在滚动时跳到底部

我有一个NSScrollView包含一个NSImageView,它根据各种因素调整大小.调整大小时我通常会更改图像,因此我将NSScrollView滚动到顶部.这很好用.但是,当我再次开始滚动NSScrollView时,它会移动几个像素然后(大部分时间)跳转到滚动的底部.跳转一次后,它会正常工作,直到我再次将滚动条移到顶部.这让我疯了.我真正做的就是:

[_imageView setImage: anNSImage];

NSRect frame;

NSSize imageSize = [anNSImage] size];
frame.size = imageSize;
frame.origin = NSZeroPoint;

[_imageView setFrame: frame];
[[_mainScrollview contentView] scrollToPoint: NSMakePoint(0, [_imageView frame].size.height - [_mainScrollview frame].size.height)];
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsscrollview

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

NSManagedObject的唯一标识符

我需要为NSManagedObject我创建的类型获取唯一标识符.它必须在对象创建后立即可用,永不改变,并且完全独特.

这排除了NSManagedObjectID,因为这可以在保存上下文时发生变化.我相信-hash如果我的对象具有相同的属性,该方法可能是非唯一的.

我真的想避免在实体上创建一个无用的uniqueIdentifier UUID字段,因为这看起来很浪费和混乱.这里有最受欢迎的最佳做法吗?

guid core-data objective-c

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

一旦 Fabric Crashlytics 在 2020 年 4 月消失,如何在 iOS 中跟踪 OOM 关闭?

当应用程序被操作系统杀死时,OOM 关闭会发生 - 这些不会在崩溃报告系统中显示为崩溃,即使从用户的角度来看它们同样糟糕。

要跟踪 OOM,您必须消除应用关闭的所有可能来源(用户关闭应用、应用升级、操作系统升级等),如果这些都没有发生,则说明出现了 OOM。这项技术在这篇 Facebook 工程博客文章中有所阐述:

https://engineering.fb.com/ios/reducing-fooms-in-the-facebook-ios-app/

目前,我们使用 Fabric Crashlytics 来跟踪崩溃和 OOM 事件,就像许多其他事件一样。Fabric Crashlytics 将于 2020 年 4 月停用,并已被 Firebase Crashlytics 取代。截至发这条推文时,Firebase 还没有实施 OOM 跟踪的计划。

https://twitter.com/Arzhannikov_A/status/1073194994134065152

实现代码以检查应用程序是否被强制关闭等非常简单,除非在应用程序的前一次运行中检测崩溃。据我所知,唯一的方法是实现 PLCrashReporter 并跟踪系统是否遇到崩溃。

Firebase 不会实现这个对于提供有关应用程序关闭的指标至关重要的功能,这对我来说似乎是香蕉,但这就是我们生活的世界。 Fabric Crashlytics 能用吗?

out-of-memory ios firebase crashlytics

9
推荐指数
0
解决办法
512
查看次数

神秘崩溃(NSAttributedString,iOS 7)

在我的应用程序中,我有一个UICollectionView的本土版本(我在UICollectionView存在之前编写它,并且它似乎比我的用例的UICollectionView更高效).它由滚动视图中的几个图块组成.

为了帮助滚动性能,并且因为每个图块由大约十二个PNG组成,每个图块使用NSOperations和NSOperationQueue预渲染到NSCache.没有这种优化,滚动性能很糟糕.

除了几个PNG之外,每个平铺都有(或可能有)几个文本.

每个NSOperation,以避免导致在后台线程上进行任何类型的渲染(当然,这是一个UIKit禁忌)的问题,使用CoreGraphics和NSAttributedStrings来渲染图像.

这让我想起了崩溃.崩溃(下面)似乎与NSAttributedString呈现有关.由于这个充满了平铺渲染操作的NSOperationQueue是我的应用程序中唯一使用NSAttributedStrings并被大量调用的地方,我不得不认为它是罪魁祸首.我们在崩溃报告中看到崩溃合理地发生,但通常不足以让我们在内部可靠地再现它(我们的应用程序拥有相当庞大的用户群).

令人着迷的是,崩溃只发生在iOS 7上.任何人都有任何想法吗?这是一个崩溃的例子:

Incident Identifier: 3BE1FF37-4288-40A9-954D-1AD909987D05
CrashReporter Key:   000339CB-9B5B-46EE-B256-4D911B190E7D
Hardware Model:      iPhone5,2
Process:         AppName [733]
Path:            /Users/USER/AppName.app/AppName
Identifier:      com.companyname.appname
Version:         2.0.1
Code Type:       ARM
Parent Process:  launchd [1]

Date/Time:       2013-10-03 23:32:20 +0000
OS Version:      iPhone OS 7.0.2 (11A501)
Report Version:  104

Exception Type:  SIGBUS
Exception Codes: BUS_ADRALN at 0x100078c
Crashed Thread:  0

Thread 0 Crashed:
0   ???                                  0x0100078c 0x0 + 0
1   UIFoundation                         0x36fbf027 -[NSLayoutManager _drawLineForGlyphRange:type:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:isStrikethrough:] + 3358
2   UIFoundation                         0x36ffdd1f -[NSLayoutManager drawUnderlineForGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:] + 86
3 …
Run Code Online (Sandbox Code Playgroud)

objective-c nsattributedstring ios ios7

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

如何在Fastlane的命令行中指定用户名?

我正在尝试将Apple ID作为命令行选项传递给Fastlane,因此所有用户和我们的构建服务器都可以使用相同的脚本.

MacBook-Pro-6:whisper-ios Nick$ fastlane hockeyglobal username:nlocking@whisper.sh
[18:00:44]: -------------------------------------------------
[18:00:44]: --- Step: Verifying required fastlane version ---
[18:00:44]: -------------------------------------------------
[18:00:44]: fastlane version valid
[18:00:44]: ------------------------------
[18:00:44]: --- Step: default_platform ---
[18:00:44]: ------------------------------
[18:00:44]: Driving the lane 'hockeyglobal' 
[18:00:44]: ------------------
[18:00:44]: --- Step: sigh ---
[18:00:44]: ------------------

+-------------------------------------+-----------------------+
|                   Summary for sigh 1.8.0                    |
+-------------------------------------+-----------------------+
| adhoc                               | true                  |
| skip_install                        | false                 |
| development                         | false                 |
| force                               | false                 |
| app_identifier                      | sh.whisper.whisperapp |
| …
Run Code Online (Sandbox Code Playgroud)

ios fastlane

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