gpt4 book ai didi

ios - iphone 越狱开发与公共(public) API

转载 作者:行者123 更新时间:2023-11-29 13:43:07 27 4
gpt4 key购买 nike

我有一个应用程序正在使用 ABAdressBook API 和 NSFileManager

当我从命令行运行应用程序时 - API 似乎无法检索AddressBook/NSFileManager 信息 - 但当我从 springboard 运行它时 - 它确实显示了所需的信息。

是否因为我的应用程序从命令行运行时没有 UI?

int main(int argc, char *argv[]) 
{
@autoreleasepool
{
printf("HELLO TEST\n");
NSLog(@"---------");
NSMutableArray* dbList = [[NSMutableArray alloc] init];

NSFileManager *fileManager = [NSFileManager defaultManager];
NSLog(@"file manager address is %@",fileManager);
NSDirectoryEnumerator *dirnum = [fileManager enumeratorAtPath: @"/private/"];
NSLog(@"dirNum is %@",dirnum);
NSString *nextItem = [NSString string];

while( (nextItem = [dirnum nextObject])) {
if ([[nextItem pathExtension] isEqualToString: @"db"] ||
[[nextItem pathExtension] isEqualToString: @"sqlitedb"]) {
if ([fileManager isReadableFileAtPath:nextItem]) {
[dbList addObject:nextItem];

NSLog(@"%@", nextItem);
}
}
}
}
}

编辑:我将问题归结为以下选择器:[fileManager isReadableFileAtPath:nextItem]当我从 SpringBoard 运行此函数时 - 它返回 true - 对于几个文件...

当我在命令行中运行它时 - 它向所有文件返回 false - 尽管我正在以 root 权限运行该应用程序。

知道什么会导致这种行为变化吗?

谢谢,伊泰

最佳答案

两者都是 ABAddressBookNSFileManager有一个返回唯一共享对象的类方法——在上面的代码中,调用 [NSFileManager defaultManager]根据文档,检索“文件系统的默认 NSFileManager 对象”。当您从命令行运行您的应用程序时,您可能不会执行初始化共享对象的部分或全部代码;你甚至可能会回来 nil来自类方法。

如果是这样,您可以通过创建自己的对象(即使用 [[NSFileManager alloc] init][ABAddressBook addressBook] )而不是依赖类方法返回共享对象来解决此问题。

关于ios - iphone 越狱开发与公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8523409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com