小编Bri*_*ian的帖子

将Gif图像转换为NSData

我的相册里有一张gif图片.当我使用它UIImagePickerController来选择该图像时,我需要将图像转换NSData为存储.

早些时候,我用过

NSData *thumbData = UIImageJPEGRepresentation(thumbnail, 0.5);
Run Code Online (Sandbox Code Playgroud)

但它不适用于gif图像.thumbData将是零.

  1. 我如何NSData从gif图像中获取?

  2. 我怎么知道它是一个需要特殊处理的gif图像?

gif nsdata ios

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

SourceTree:添加自定义操作以在外部编辑器中打开文件

SourceTree有一个名为unstaged files的窗口,它显示未提交更改的文件.我想右键单击文件名并在外部编辑器中打开它.所以我添加了一个自定义操作 - >编辑 - > pathtoeditor\editor.exe $ REPO\$ FILE.

这将启动编辑器.但SourceTree也一直在显示进度条. 进度条 只有在我关闭外部编辑器后,进度条才会关闭.

我该如何避免这种情况?在外部编辑器中打开文件后,我希望SourceTree的UI返回到正常状态,而无需等待编辑器退出.

git atlassian-sourcetree

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

将NSData转换为NSDictionary

我从XML文件中获取数据,并将其存储在NSData对象中.我想将NSData转换为NSDictionary并将该数据存储在plist中.

我的代码如下:

NSURL *url = [NSURL URLWithString:@"http://www.fubar.com/sample.xml"];
    NSData *data = [NSData dataWithContentsOfURL:url]; 
    NSLog(@"%@", data);
Run Code Online (Sandbox Code Playgroud)

要转换数据,我使用:

- (NSDictionary *)downloadPlist:(NSString *)url {
    NSMutableURLRequest *request  = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10]; 
    NSURLResponse *resp = nil;
    NSError *err = nil;
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&resp error:&err];

    if (!err) {
        NSString *errorDescription = nil;
        NSPropertyListFormat format;
        NSDictionary *samplePlist = [NSPropertyListSerialization propertyListFromData:responseData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorDescription];

        if (!errorDescription)
            return samplePlist;

        [errorDescription release];              
    }

    return nil;
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我怎么做?

xml nsdictionary nsdata ios

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

在iOS上使用curl,我无法链接多个体系结构,CurlchkszEQ宏失败

我使用我在GitHub上找到的精彩"build_curl"脚本构建了许多版本的curl.我还使用其他技术重建卷曲.

但我总是遇到同样的问题.

我有一个与curl链接的iOS项目.我可以在模拟器上构建和调试(显然使用i386).只要我选择构建当前架构并且在构建时插入设备,我就可以使用设备进行构建和调试.

但是,如果我选择尝试构建Release OR,如果我选择为没有插入设备的'iOS Device'构建Debug.我总是会遇到以下错误:

curlrules.h:143:6: '__curl_rule_01__' declared as an array with a negative size
Run Code Online (Sandbox Code Playgroud)

这是由于:

#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
typedef char
  __curl_rule_01__
    [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
Run Code Online (Sandbox Code Playgroud)

这个#define存在于curlbuild.h中

#define CURL_SIZEOF_LONG 4
Run Code Online (Sandbox Code Playgroud)

哪个应该是正确的,因为我正在为32位架构构建,但是,Xcode决定了这一点sizeof(long) != 4,因此宏会产生错误.

我选择只为armv7和armv7s构建,但我仍然遇到此错误.

我不明白为什么这不会建立.

xcode curl ios

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

为什么Xcode的调试器会使用Swift以这种方式跳转?

我用F6in 调试了下面的代码Xcode 6,执行的顺序非常有趣.

这是代码--7行,在第1行设置断点:

    let request = AWSDynamoDBPutItemInput()
    request.tableName = "blah"

    let card = AWSDynamoDBAttributeValue()
    card.S = "1234"
    let email = AWSDynamoDBAttributeValue()
    email.S = "notset"

    request.item = ["card_number" : card, "email" : email]
Run Code Online (Sandbox Code Playgroud)

当我通过代码F6时,它显示以下序列(数字是行号):

1,2,4,2,3,4,6,4,5,6,7,6,7
Run Code Online (Sandbox Code Playgroud)

为什么是这样?这是Xcode还是语言?这些类是在亚马逊的AWS SDK中定义的,不确定是否重要,它们是通过swift-objective-c桥接访问的,这可能与桥接有关.

顺便说一下,执行的最终结果是正确的.

debugging xcode objective-c swift

9
推荐指数
2
解决办法
1536
查看次数

如何将Xcode从7.0版降级到6.4版?

如何将Xcode从7.0版降级到6.4版?

我最近将Xcode的版本升级到最新的版本(7.0),我开始有相应的编译错误.我想回到6.4.

xcode downgrade

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

确认UITextview自动完成

这似乎不可能,但也许其他人也有同样的问题.

我是否可以通过编程方式接受自动填充,或以某种方式获取弹出的建议单词?我的问题是我正在捕获返回/退格键击,然后将焦点移动到另一个textview.当输入/退格时,textview将忽略自动建议的单词.似乎只能通过命中空格/点(并返回新行)来接受自动完成.使用此代码:

 - (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
                                replacementText:(NSString *)text {
    NSRange textViewRange = [textView selectedRange];

    // Handle newrow and backspace.  
    if(([text length] == 0) && (textViewRange.location== 0) && textViewRange.length==0){
        // BACKSPACE KEYSTROKE
        [delegate doSomethingWhenBackspace];
        return NO;      
    }else if ([text isEqualToString:@"\n"]){    
        // RETURN KEYSTROKE
        [delegate doSomethingWhenReturn];       
        return NO;      
    }

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我尝试以编程方式在返回键时添加"space",但也忽略了自动完成的单词.

else if ([text isEqualToString:@"\n"]){ 
                // Tryin to accept autocomplete with no result. 
                textview.text = [textview.text stringByAppendingString:@" "];
            // RETURN KEYSTROKE
            [delegate doSomethingWhenReturn];       
            return NO;      
        }
Run Code Online (Sandbox Code Playgroud)

有什么建议?

iphone uitextview uitextviewdelegate ios

8
推荐指数
1
解决办法
1921
查看次数

Objective-C相当于curl请求

我试图在Objective-C中操纵这个curl请求:

curl -u username:password "http://www.example.com/myapi/getdata"
Run Code Online (Sandbox Code Playgroud)

我已经实现了以下内容,我得到一个数据出现错误Domain=kCFErrorDomainCFNetwork Code=303NSErrorFailingURLKey=http://www.example.com/myapi/getdata:

// Make a call to the API to pull out the categories
NSURL *url = [NSURL URLWithString:@"http://www.example.com/myapi/getdata"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

// Create the username:password string for the request
NSString *loginString = [NSString stringWithFormat:@"%@:%@", API_USERNAME, API_PASSWORD];

// Create the authorisation string from the username password string
NSData *postData = [loginString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

[request setURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request …
Run Code Online (Sandbox Code Playgroud)

iphone xcode curl objective-c ios

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

后台线程上的drawViewHierarchyInRect

我正在尝试在后台线程上进行一些"屏幕外渲染",以更新我正在创建的类似设计器的应用程序的预览.

我已经使用renderInContextNSOperationQueue派生的队列来实现这一点,但请注意它很慢.

所以,我已经开始使用drawViewHierarchyInRect哪个效果很好而且速度更快.但是,我注意到当这个方法以b/g运行时,我的UI完全阻塞.

如果我在主线程上这样做...

    UIView *preview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    preview.backgroundColor = [UIColor redColor];

    UIGraphicsBeginImageContextWithOptions(preview.bounds.size, NO, 0.0);

    BOOL ok = [preview drawViewHierarchyInRect:preview.bounds afterScreenUpdates:YES];

    UIImage *img = nil;

    if( ok )
    {
        img = UIGraphicsGetImageFromCurrentImageContext();
    }

    UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

......一切正常.

但是,如果我(比如说)派遣这个......

if (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW) == 0) 
{
    dispatch_async(renderQueue, ^{
        // capture
        UIView *preview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
        preview.backgroundColor = [UIColor redColor];

        UIGraphicsBeginImageContextWithOptions(preview.bounds.size, NO, 0.0);

        BOOL ok = [preview drawViewHierarchyInRect:preview.bounds afterScreenUpdates:YES];

        UIImage *img = nil;

        if( …
Run Code Online (Sandbox Code Playgroud)

multithreading screenshot uiview ios

8
推荐指数
1
解决办法
2074
查看次数

忽略对已跟踪文件的更改

我想更改跟踪文件以进行开发,但保持跟踪版本不变.

对此的大多数"解决方案"表明

git update-index --assume-unchanged
Run Code Online (Sandbox Code Playgroud)

但它完全没用,因为文件仍然会被结帐或重置更改.是否有更好的解决方案可以在结账和重置命令后继续存在?

git ignore file

8
推荐指数
1
解决办法
1904
查看次数