小编Oma*_*arj的帖子

FBSDKLoginManager logInWithReadPermissions?

我正在使用FBSDKLoginButton允许用户登录使用Facebook和使用 FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];

要求权限,但我需要一个权限,这是我应该使用的publish_actions FBSDKLoginManager

 logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"] 
logInWithPublishPermissions:@[@"publish_actions"]
Run Code Online (Sandbox Code Playgroud)

但这由于某种原因影响了我的许可"我的一些许可是缺少检查图像

码:-

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
                [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                    if (error) {
                        // Process error
                    } else if (result.isCancelled) {
                        // Handle cancellations
                    } else {
                        // If you ask for multiple permissions at once, you
                        // should check if specific permissions missing
                        if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                            // Do work
                        }
                    }
                }];

[login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    if …
Run Code Online (Sandbox Code Playgroud)

facebook objective-c ios facebook-ios-sdk facebook-sdk-4.0

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

NSDate年份回报"1604"?

我试图获取联系人的出生数据但是如果用户没有选择年份或者联系人来自Facebook和年份或者自己的数据是隐藏的那么它给了我年份的"1604"值你可以看到我意思是在图像中.

在此输入图像描述

在此输入图像描述

iphone objective-c nsdate abaddressbook ios

12
推荐指数
1
解决办法
1089
查看次数

使用dispatch_async加速搜索?

我正在尝试加速我的应用搜索,当有大量数据时它会滞后.

所以我试图分裂搜索谓词UI使用dispatch_async不会dispatch_sync造成任何不同,如果我使用它.

问题是当我使用时dispatch_async,应用程序崩溃有时是因为[__NSArrayI objectAtIndex:]: index "17" beyond bounds.

我现在发生这种情况是因为我们说第一个仍然工作并重新加载tableView并继续搜索将改变数组大小取决于结果所以在这种情况下"CRASH":(

这是我的代码:

    dispatch_async(myQueue, ^{
        searchArray = [PublicMeathods searchInArray:searchText array:allData];
    } );

    if(currentViewStyle==listViewStyle){
        [mytable reloadData];
    }
Run Code Online (Sandbox Code Playgroud)

我试过这个:

    dispatch_async(myQueue, ^{
        NSArray *tmpArray = [PublicMeathods searchInArray:searchText array:allData];
        dispatch_sync(dispatch_get_main_queue(), ^{
            searchArray = tmpArray;
            [mytable reloadData];
        });
    });
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,滞后仍然存在.

更新-1-:

努力工作后搜索Predicate只用了2ms :)但是当用户搜索时键盘仍然滞后,所以我得到的结果之后我唯一能做的就是重新加载表"改变用户界面"这个我认为让它滞后,

所以我搜索分裂这两个操作"在键盘上打字和刷新UI".

更新-2-:

@matehat /sf/answers/1181593031/

@TomSwift /sf/answers/1180623461/

答案像魅力一样工作:)

iphone objective-c grand-central-dispatch ios ios6

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

核心数据迁移:未调用NSEntityMigrationPolicy中的方法.

我有两个模型版本--12和13.然后我创建了一个xcmappingmodel-File,其中包含源12和目标13.

我将NSEntityMigrationPolicy子类化,并将我的类添加到mappingmodel-File到所需的实体.

@interface EndDateMigrationPolicy : NSEntityMigrationPolicy
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在我的设备上安装和旧版本(11)后,我使用模型版本13安装当前状态 - 应用程序运行,但我的迁移方法未被调用.我错过了什么吗?

编辑:使用这些选项是否正确?

    NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES,
                         NSInferMappingModelAutomaticallyOption: @YES};
Run Code Online (Sandbox Code Playgroud)

iphone objective-c core-data-migration ios ios6

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

ABAddressBookCreate(),ABAddressBookGetGroupCount,... return @"0x00000000 <nil>"?

我正在尝试获取组名,但经过多次调用此方法"由用户重新加载联系人",它会给出nil值和以下错误.

-(void) getGroupsName
    {
        [groupsName removeAllObjects];
        //address book object to interact with iPhone contacts.
        ABAddressBookRef addressbook = ABAddressBookCreate();
        //get groups count
        CFIndex groupsCount          = ABAddressBookGetGroupCount(addressbook);
        //get all available groups as array
        CFArrayRef allGroups         = ABAddressBookCopyArrayOfAllGroups(addressbook);

        for (int i = 0; i<groupsCount; i++) {
            //get group of index=i from groups array
            ABRecordRef group = CFArrayGetValueAtIndex(allGroups, i);
            //get group name, I use __bridge_transfer to transfer from C to objective-c.
            [groupsName addObject:(__bridge_transfer NSString*)ABRecordCopyCompositeName(group)];

        }
        CFRelease(allGroups);
        CFRelease(addressbook);
    }
//////////////////////////////////////////////////////////////

    warning: Could not …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c abaddressbook ios ios5

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

NETunnelProvider 在 iOS 14 上停止接收数据包?

我有一个Local VPN使用“ NETunnelProvider/ NetworkExtentsion”的应用程序,在我的解决方案中,我在设备本身上创建了一个拆分隧道来跟踪 DNS 请求,使用NEKit我能够查看数据包内部并根据目标地址过滤正在进行的请求(let's call ita UDP listener for DNS requests).

这个解决方案在 iOS 13.7 及更低版本上运行良好,最近苹果发布iOS 14,我的解决方案停止工作,VPN连接仍然建立,但用户无法访问任何网站,我调试了代码并发现networkExtision没有收到任何packets来自用户活动的信息.

我正在使用CocoaAsyncSocket图书馆。

func udpSocket(_ sock: GCDAsyncUdpSocket, didReceive data: Data, fromAddress address: Data, withFilterContext filterContext: Any?) {
    
    let host = GCDAsyncUdpSocket.host(fromAddress: address)
    
    guard let message = DNSMessage(payload: data) else {
        return
    }
    
    guard let session = pendingSession.removeValue(forKey: message.transactionID) else {
        return
    }
    
    session.realResponseMessage = message
    session.realIP = …
Run Code Online (Sandbox Code Playgroud)

networking udp swift networkextension ios14

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

导入,显示和缓存大数据

我试图从一些地方得到的数据,并将其保存在一个NSMutableArray包含数据和信息自定义对象.

每当用户打开相同的数据是从源加载,并转换为我的可爱阵列自定义对象的应用程序.这需要很长的时间(〜10-20s),使很愚蠢的应用程序.所以我试图获取数据并在此链接中显示它

我尝试了什么:

  • 将包含自定义对象的数组保存到文件中,并在下一个应用程序启动(如果找到)时加载此文件,而无需再次从头开始创建自定义对象.
  • 自定义对象编码和解码需要很长时间进行测试.即使你保存它NSUserDefault.

在任何人开始回答这个问题之前.看看示例代码并运行它以确保检索数据并显示它的含义.在重新启动样品后的快速时间,使我想要更清楚:)

如果有人能让我的样本更加清晰,我会感激不尽.

iphone nsmutablearray ios ios5 ios6

5
推荐指数
1
解决办法
262
查看次数

ABPersonCopyImageDataWithFormat删除联系人图像

我有这个代码将所有联系人图像存储在字典中.但是,在某些情况下,当它被中断时,联系人的图像就会消失.

dispatch_async(dispatch_get_main_queue(), ^{            

        if (ABPersonHasImageData(_personObj)) {

            // UIImage *image = [UIImage imageWithData:(__bridge NSData*) ABPersonCopyImageDataWithFormat(_personObj, kABPersonImageFormatThumbnail)];
            NSData *data = (__bridge NSData *) ABPersonCopyImageDataWithFormat(_personObj, kABPersonImageFormatThumbnail);
            UIImage *image = [UIImage imageWithData:data scale:1];
            int recordId = ABRecordGetRecordID(_personObj);
            [contactImagesDi setValue:image forKey:[NSNumber numberWithInt:recordId]];

        }

});
Run Code Online (Sandbox Code Playgroud)

iphone objective-c addressbook abaddressbook ios

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