小编Vic*_*ram的帖子

iPhone静态库中的核心数据

我已经构建了一个静态库,它大量使用了Core Data框架.我可以在我的外部项目中成功使用该库,但仅限于我在主项目中包含.xcdatamodel文件.这不太理想,因为库的要点是尽可能隐藏实现细节.

在一个单独的问题中,我被告知我无法将资源与库捆绑在一起(这对我来说完全合情合理).

那么有没有办法以编程方式允许模型被"发现",而不必将模型包含在主项目中?

iphone core-data static-libraries nsbundle

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

删除应用程序然后重新安装应用程序时的iOS推送通知行为

我遇到了一个不寻常的情况,当我的应用程序被删除然后重新安装时,用户继续收到通知.方案如下:

  • 用户从appstore安装应用程序
  • 用户登录我们的应用程序,我们注册他们的通知
  • 用户从其设备中删除应用程序
  • 用户从appstore重新安装应用程序
  • 即使用户尚未启动应用程序,登录等,用户也会收到通知

我对APN架构的理解是,一旦您的应用程序从您的设备中删除,它就会被操作系统本身从APN取消注册.在您调用"registerForRemoteNotificationTypes"之前,重新安装应用程序不会重新启用通知 - 因此,如果使用旧令牌向设备发送了注释,则由于尚未调用上述方法,APN将无法提供该注释.

这不准确吗?

iphone push-notification apple-push-notifications ios

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

ObB-c静态库中的NSBundle,plist和其他资源

我在Xcode中创建了一个静态库,我可以在其他项目中成功使用它.但是,对于像plists这样的资源,我发现必须在我的库中引用在项目所在的主项目中引用的任何plist.

在我的静态库项目中,我的plist包含在目标的"Copy Bundle Resources"阶段.在我的代码中,这是我正在做的事情:

NSBundle *mainBundle = [NSBundle mainBundle];
NSString *filePath   = [mainBundle pathForResource:@"MyClassParams" ofType:@"plist"];

NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

如果我使用mainBundle并且MyClassParams.plist包含在主项目中,那么一切都很好.如果MyClassParams.plist包含在库项目中,则它不起作用.

假设[NSBundle mainBundle]引用了错误的静态方法,我将其替换为:

NSBundle *mainBundle = [NSBundle bundleForClass:[MyClass class]];
Run Code Online (Sandbox Code Playgroud)

这也不起作用.

那么,是否可以将plist或任何其他资源包含在静态库中 - 或者我是否必须在使用lib的项目中包含我需要的内容?

iphone plist nsbundle

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

"__workq_kernreturn"在iOS崩溃日志中或暂停执行应用程序时的含义是什么?

在iOS上调试时,如果我暂停执行,我经常会看到多个对"__workq_kernreturn"的引用.

如果我的应用程序碰巧崩溃,我经常看到多个线程被识别如下:

Thread 19:
0   libsystem_kernel.dylib              0x332d0cd4 __workq_kernreturn + 8

Thread 20:
0   libsystem_kernel.dylib              0x332d0cd4 __workq_kernreturn + 8

Thread 21:
0   libsystem_kernel.dylib              0x332d0cd4 __workq_kernreturn + 8
Run Code Online (Sandbox Code Playgroud)

"__workq_kernreturn"是否表示正在等待退出的线程,或者是一个死锁的线程?这有什么值得担心的吗?

unix iphone objective-c ipad ios

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

used_memory_peak_perc 和 used_memory_dataset_perc 是什么意思?

这些是来自我的 redis 实例的内存使用情况统计信息。我不确定 used_memory_peak_perc 和 used_memory_dataset_perc 是什么意思——什么时候我应该开始担心?特别是因为后者越来越接近 100%。

# Memory
used_memory:454041104
used_memory_human:433.01M
used_memory_rss:558338048
used_memory_rss_human:532.47M
used_memory_peak:867680576
used_memory_peak_human:827.48M
used_memory_peak_perc:52.33%
used_memory_overhead:93054648
used_memory_startup:3662104
used_memory_dataset:360986456
used_memory_dataset_perc:80.15%
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:9901336167
maxmemory_human:9.22G
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.23
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0
Run Code Online (Sandbox Code Playgroud)

redis

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