小编k06*_*06a的帖子

UIActivityViewController在presentViewController上崩溃:

上周没问题,但今天当我使用UIActivtyViewController时,uiactivityviewcontroller崩溃了.

- (void)shareThePrice
{
    UIImage *screenShotImg = [self screenShot];
    NSString *string = NSLocalizedString(@"shareString", nil);

    UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
        initWithActivityItems:@[string,screenShotImg] applicationActivities:nil];

    [activityViewController setCompletionWithItemsHandler:
    ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *error)
    {
        if ( completed ) {
            //  TODO error handling
            NSLog(@"share complete");
            //            NSExtensionItem* extensionItem = [returnedItems firstObject];
            //            NSItemProvider* itemProvider = [[extensionItem attachments] firstObject];
        } else {
            NSLog(@"canceld");
        }
    }];

    [self presentViewController:activityViewController animated:YES completion:^{
        NSLog(@"complete");
    }];
}
Run Code Online (Sandbox Code Playgroud)

当presentViewController方法使用时,它会崩溃.我不知道什么是错的?

Communications error: <OS_xpc_error: <error: 0x107f39b10> { count = 1, contents …
Run Code Online (Sandbox Code Playgroud)

xcode uiactivityviewcontroller

6
推荐指数
0
解决办法
1091
查看次数

OSX链接错误的Fabric Answers

试图使用OSO Answers平台的annonced 框架:

pod 'Fabric'
pod 'Answers'
pod 'Crashlytics'

#import <Fabric/Fabric.h>
#import <Answers/Answers.h>
#import <Crashlytics/Crashlytics.h>

[Fabric with:@[[Crashlytics class], [Answers class]]];
Run Code Online (Sandbox Code Playgroud)

并得到一堆错误:

...
duplicate symbol _OBJC_METACLASS_$_CLSAnswersInviteEvent in:
/Users/k06a/Projects/UXMaterial/Pods/Answers/OSX/Answers.framework/Answers(CLSAnswersInviteEvent.o)
/Users/k06a/Projects/UXMaterial/Pods/Crashlytics/OSX/Crashlytics.framework/Crashlytics(CLSAnswersInviteEvent.o)
ld: 200 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

macos cocoapods twitter-fabric

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

printf for struct?(C/C++,VC2008)

只需在VC2008中构建并运行它:

struct A
{
   int a;
   int b;
   int c;
};
A a = { 10, 20, 30 };
printf("%d %d %d\n", a);
Run Code Online (Sandbox Code Playgroud)

这是正常的吗?

10 20 30
Run Code Online (Sandbox Code Playgroud)

我想投!但它不起作用:

struct A
{
   int a;
   int b;
   int c;
   operator int()
   {
      return a + b + c;
   }
};
A a = { 10, 20, 30 };
printf("%d\n", a);
Run Code Online (Sandbox Code Playgroud)

仅输出:

10
Run Code Online (Sandbox Code Playgroud)

我需要自动转换模板实用程序.这是:https://code.google.com/p/boolib/source/browse/boolib/crypt/ShakedValue.h 它应该隐藏在内存中,任何hack-programms(ArtMoney)都找不到值.

还有一个技巧:打印struct/class的私有成员

c++ printf struct field

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

如何使用自定义方案缩短URL?

我想在Twitter上分享我的应用程序的链接.URL看起来像myapp://mylink.Twitter没有突出显示这些URL,它们确实无法访问.我想把我的链接包装成类似bit.ly/xxxxxx但是http://bit.lyhttp://goo.gl都不支持自定义URL模式.

还有其他建议吗?

url url-scheme bit.ly url-shortener goo.gl

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

在磁盘上分配文件而不进行归零

我需要分配大文件而不归零它的内容.我正在fopen => ftruncate => fclose => mmap => (...work...) => munmap以巨大的文件大小(数百千兆字节)制作这些步骤.应用程序挂起终止几分钟,而系统正在尝试将文件字节归零 - 恕我直言,因为ftruncate使用.

ftruncate(ofd, 0);

#ifdef HAVE_FALLOCATE

    int ret = fallocate(ofd, 0, 0, cache_size);
    if (ret == -1) {
        printf("Failed to expand file to size %llu (errno %d - %s).\n", cache_size, errno, strerror(errno));
        exit(-1);
    }

#elif defined(HAVE_POSIX_FALLOCATE)

    int ret = posix_fallocate(ofd, 0, cache_size);
    if (ret == -1) {
        printf("Failed to expand file to size %llu (errno %d - %s).\n", cache_size, errno, strerror(errno));
        exit(-1);
    }

#elif defined(__APPLE__) …
Run Code Online (Sandbox Code Playgroud)

c macos posix fcntl fallocate

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

具有自签名SSL和HTTP Basic Auth的AFHTTPRequestOperation(-1012错误)

我正在尝试通过上传照片到我的网络服务器AFHTTPRequestOperation.这是我的AFHTTPSessionManager.通过这个所有的http请求manager都很完美.

- (AFHTTPSessionManager *)manager
{
    if (_manager == nil) {
        _manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"https://my.domain.com/api/v2"]];
        [_manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"username" password:@"password"];

        AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
        policy.allowInvalidCertificates = YES;
        _manager.securityPolicy = policy;
    }
    return _manager;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试上传带有进度处理的照片时:

- (void)photoSend:(UIImage *)photo
          toUsers:(NSArray *)users
       completion:(CompletionHandler)completion
         progress:(ProgressionHandler)progress
{
    NSDictionary *params = @{
                             @"token":self.token,
                             @"to_usernames":[users componentsJoinedByString:@","],
                             };

    NSString *urlString = [[NSURL URLWithString:@"photo/send" relativeToURL:self.manager.baseURL] absoluteString];
    NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:urlString parameters:params constructingBodyWithBlock:^(id <AFMultipartFormData> formData)
                                    {
                                        [formData appendPartWithFileData:UIImageJPEGRepresentation(photo,0.8)
                                                                    name:@"photo"
                                                                fileName:@"image.jpg"
                                                                mimeType:@"image/jpg"]; …
Run Code Online (Sandbox Code Playgroud)

ssl https ios afnetworking

4
推荐指数
1
解决办法
2668
查看次数

获取模板lambda参数的返回值,如何简化代码?

这是我的技巧:

template<typename F, typename TArg>
auto get_return_value(F * f = NULL, TArg * arg = NULL)
     -> decltype((*f)(*arg));
Run Code Online (Sandbox Code Playgroud)

使用示例:

template<typename F, typename T>
decltype(get_return_value<F,T>()) applyFtoT(F f, T t)
{
    return f(t);
}
Run Code Online (Sandbox Code Playgroud)

如果 F 是 lambda:

int b = applyFtoT([](int a){return a*2}, 10);
// b == 20
Run Code Online (Sandbox Code Playgroud)

我认为函数 get_return_value 看起来很丑......如何简化它?

lambda return result-of decltype visual-c++

3
推荐指数
1
解决办法
1407
查看次数

C++标头仅包含模式

我想在.hpp中编写代码而不分离为.h和.cpp

  • 我做的.我只将.cpp用于静态类字段定义

我不想手动编写#include ...

  • 我尽可能使用向前的delarations.
  • 每个我的.hpp文件都包含#pragma一次.
  • 但是,当我的项目增长到40-50个班级时,我看到了包含图形的问题.定义有一些错误.

包含我的项目模型的图形的图像(如mvc的一部分)附加.
我用这个应用程序生成图表(可以在没有MSVS的情况下工作!).

包括图表

如何包括图形应该是什么样的?像一棵树?
如何不手动编写包括C#或Java?

c++ header graph include header-only

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

QTreeView与setIndexWidget

我正在使用QStandardItemModel和QStandardItem.

我不想写自己的模型和任何代表.

我只想在第二栏中找到QComboBox'的复选框树...

m_model->setColumnCount(2);
for (int i = 0; i < sectionCount; i++)
{
    QStandardItem * section = new QStandardItem(tr("Section %1").arg(i+1));
    section->setCheckable(true);
    section->setCheckState(Qt::Checked);

    for (int j = 0; j < itemsCount; j++)
    {
        QStandardItem * item = new QStandardItem(tr("Item %1").arg(j+1));
        item->setCheckable(true);
        item->setCheckState(Qt::Checked);

        QStandardItem * item2 = new QStandardItem("xxx");

        section->appendRow(QList<QStandardItem*>() << item << item2);

        QComboBox * combo = new QComboBox();
        QModelIndex index = m_model->index(j, 1, );

        // HERE i have index = {-1;-1}

        ui->treeView_options->setIndexWidget(index, combo);
    }
    m_model->appendRow(section);
}
Run Code Online (Sandbox Code Playgroud)

是否有可能以这种方式使用setIndexWidget?

更新:

我在第二栏中没有QComboBox …

c++ model-view-controller qt qtreewidget qtreeview

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

具有NSNumber到NSString映射的NSDictionary是非属性列表对象

以下代码:

[[NSUserDefaults standardUserDefaults] setObject:photoIdToPath forKey:@"photo_id_to_path"];
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

Attempt to set a non-property-list object {
417675729 = "/Users/k06a/Library/Application Support/iPhone Simulator/7.1/Applications/21163736-DF6F-4E79-8196-6A966C81ED1B/Documents/417675729";
} as an NSUserDefaults value for key photo_id_to_path
Run Code Online (Sandbox Code Playgroud)

这是photoIdToPath来自Xcode调试控制台的字典内容分析:

(lldb) po photoIdToPath
{
    417675729 = "/Users/k06a/Library/Application Support/iPhone Simulator/7.1/Applications/21163736-DF6F-4E79-8196-6A966C81ED1B/Documents/417675729";
}

(lldb) po [[[photoIdToPath allKeys] lastObject] class]
__NSCFNumber

(lldb) po [[[photoIdToPath allValues] lastObject] class]
NSPathStore2
Run Code Online (Sandbox Code Playgroud)

那么NSPathStore2是子类NSString,为什么这个字典不是属性列表?

更新:

在这里https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html#//apple_ref/occ/instm/NSUserDefaults/setObject:forKey:我找到了正文:

value参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary.对于NSArray和NSDictionary对象,其内容必须是属性列表对象.请参阅"属性列表编程指南"中的"什么是属性列表?".

objective-c nsdictionary nsuserdefaults property-list ios

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

如何在没有任何绑定端口的情况下编写用户模式NAT?

我想创建自己的用户模式NAT应用程序.

我有以下方案:

VM2 [192.168.8.2 ] ------ [192.168.8.1 ] Win2003 [192.168.9.1 ] ------ [192.168.9.2 ] VM1

VM3 [192.168.8.3 ] _ /

VM4 [192.168.8.4 ] _ /

  1. 我正在8.1和9.1接口上捕获RAW IP数据包.
  2. 来自8.1的一些数据包以这种方式转移到9.1接口:8.2-> 9.2由9.1-> 9.2替换
  3. 来自9.1的一些数据包以这种方式转移到8.1接口:9.2-> 9.1由9.2-> 8.2替换

我的应用程序根本不绑定任何端口 - 它只从接口捕获.

我看到了这种情况:

  1. 8.2-> 9.2翻译为9.1-> 9.2包含SYN标志
  2. 9.2-> 9.1转换为9.2-> 8.2包含SYN + ACK标志
  3. 第2步中包含9.1-> 9.2与RST标志...

Windows Server 2003重置我的NATed连接.我根本不想绑定任何端口.

我怎么处理这个?

更新:

user1202136,怎么可能:

使用Windows防火墙阻止来自用户空间NAT使用的端口的RST数据包.

没有编写自己的NDIS驱动程序?

sockets tcp nat capture tcp-ip

0
推荐指数
1
解决办法
681
查看次数