小编jos*_*lat的帖子

如何在上传到服务器之前压缩/调整iPhone OS SDK上的图像大小?

我目前正在iOS上使用Imgur将图像上传到服务器,代码如下:

NSData* imageData = UIImagePNGRepresentation(image);
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"SBTempImage.png"];
[imageData writeToFile:fullPathToFile atomically:NO];

[uploadRequest setFile:fullPathToFile forKey:@"image"];
Run Code Online (Sandbox Code Playgroud)

代码在模拟器中运行并从模拟器的照片库上传文件时工作正常,因为我在快速以太网连接上.但是,在选择使用iPhone拍摄的图像时,相同的代码会在iPhone上超时.所以,我尝试通过从网络上保存一个小图像并试图上传它,这是有效的.

这让我相信iPhone拍摄的大图像会在有点慢的3G网络上超时.有没有办法在发送之前压缩/调整iPhone的图像大小?

谢谢!

file-upload uiimage nsdata ios4 ios

75
推荐指数
7
解决办法
10万
查看次数

iPhone UINavigation问题 - 嵌套推送动画可能导致导航栏损坏

我一直收到以下错误:

2011-04-02 14:55:23.350 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.352 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Run Code Online (Sandbox Code Playgroud)

这就是我在做的事情.从视图控制器,我按下某个按钮时调用以下内容:

EventsViewController *viewController = [[EventsViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
navController.navigationBar.tintColor = [UIColor blackColor]; …
Run Code Online (Sandbox Code Playgroud)

iphone uinavigationcontroller navigationcontroller ios4

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

HTML格式的电子邮件根本不在Gmail中显示,但在其他邮件客户端中

我目前正在从PHP的mail()函数发送html格式的电子邮件,并检查它们只是为了确保它们显示为HTML(格式化一边,我很清楚格式将从客户端到客户端变化(可能很大)) .它们在Apple Mail客户端以及我的iPhone上显示为HTML.但是,Gmail只是拒绝将其显示为HTML.并且我并不是说它的格式不正确,它只是不使用它出现的HTML.

奇怪的是,正在加载来自标签的img,但是就是这样......是不是我主要使用div进行布局,这对于Gmail或其他东西来说太新了(vs表)?

至于CSS以及什么不是,查看原始源显示以下内容:

<html><head><style>body { background-color: #F2F2F2; font-family: Arial; color: #5C5C5C; font-size: 11pt; } a { color: #46AAFF; text-decoration: none; } #container { width: 750px; margin-right: auto; margin-left: auto; } #header { float: right; padding: 3px; height: 30px; } #header a { color: #666666; margin-right: 10px; } #mainBody { padding: 20px; background-color: #FFF; border: 1px solid #DADADA; border-radius: 3px; } #imageArea { border-top: solid #E8E8E8 1px; margin: 15px; } #singleImageArea { width: 250px; padding: 15px; } #singleImageArea p …
Run Code Online (Sandbox Code Playgroud)

css gmail html-email gmail-imap

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

如何使用PHP设置Beanstalkd

最近我一直在研究使用Bean的Beanstalkd.我已经学到了很多,但对服务器上的设置有一些疑问等.

以下是我看到它的工作方式:

  1. 我在我的Ubuntu服务器上安装了Beanstalkd和任何依赖项(例如libevent).然后我启动Beanstalkd守护程序(它应该基本上一直运行).
  2. 在我的网站的某个地方(例如当用户执行某些操作等)时,任务会被添加到Beanstalkd队列中的各个管道中.
  3. 我有一个bash脚本(例如下面的一个),它作为一个基本上执行PHP脚本的守护进程运行.

    #!/bin/sh
    php worker.php
    
    Run Code Online (Sandbox Code Playgroud)

4)worker脚本会有类似的东西来执行排队的任务:

while(1) {
  $job = $this->pheanstalk->watch('test')->ignore('default')->reserve();
  $job_encoded = json_decode($job->getData(), false);
  $done_jobs[] = $job_encoded;
  $this->log('job:'.print_r($job_encoded, 1));
  $this->pheanstalk->delete($job);
}
Run Code Online (Sandbox Code Playgroud)

现在这里是基于上述设置的问题(如果我错了,请纠正我):

  1. 假设我有将RSS源导入数据库或其他任务的任务.如果10个用户同时执行此操作,则他们将全部排在"测试"管中.但是,它们只能一次执行一个.将10个不同的管同时执行会更好吗?

  2. 如果我确实需要更多电子管,那么这是否也意味着我需要10个工作脚本?除了watch()函数中的字符串文字之外,每个管都有一个基本相同的代码同时运行.

  3. 如果我将该脚本作为守护进程运行,那该怎么办?它会不断执行worker.php脚本吗?该脚本在理论上循环直到队列为空,所以不应该只启动一次吗?守护进程如何决定执行worker.php的频率?这只是一个场景吗?

谢谢!

php bash daemon message-queue beanstalkd

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

在BarButtonItem打开时按下它时解除iPad UIPopoverController

在iPad上使用拆分视图,我有以下代码:

- (void) splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc {
  barButtonItem.title = @"Categories";
  NSMutableArray *items = [[toolbar items] mutableCopy];
  [items insertObject:barButtonItem atIndex:0];
  [toolbar setItems:items animated:YES];
  [items release];
  self.popoverController = pc;
}
Run Code Online (Sandbox Code Playgroud)

这可以很好地显示按下按钮时的弹出窗口.但是,如果按下按钮,我也希望让按钮解除,因为它已经打开以遵循良好的指导方针.我该怎么做呢?(即如果用户反复点击此按钮,则弹出窗口应该会隐藏其他所有击中.)

user-interface ipad uisplitviewcontroller dismiss uipopovercontroller

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

从其内容控制器中解除iPad UIPopoverController

所以我有一个带有按钮的popover.当按下该按钮时,我希望弹出窗口消失.这似乎很容易,但我无法弄清楚我的生活.我用来显示popover的代码如下:

    AddCategoryViewController* content = [[AddCategoryViewController alloc] init];
 UIPopoverController* aPopover = [[UIPopoverController alloc]
          initWithContentViewController:content];
 aPopover.delegate = self;
 [content release];

 // Store the popover in a custom property for later use.
 self.addCategoryPopover = aPopover;
 [aPopover release];
 [addCategoryPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
Run Code Online (Sandbox Code Playgroud)

在addcategoryviewcontroller中,我有:

    -(IBAction)saveAddCategory:(id)sender {
 if (rootViewController == nil)
  rootViewController = [[RootViewController alloc] init];

 [rootViewController.addCategoryPopover dismissPopoverAnimated:YES];
 [rootViewController dismissPopover];
}
Run Code Online (Sandbox Code Playgroud)

Rootviewcontroller是创建popover的地方.不幸的是,这些方法都没有解决它.任何帮助?

popover ipad uipopovercontroller

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

独家iOS UTI

我正在尝试为我的iOS应用程序创建/导出独有的UTI类型(非常类似于Instagram独家处理UTI com.instagram.exclusivegram的方式).

基本上,我想com.photoapp.photo是一个应用程序可以使用,如果他们希望能够在任何注册拍照的应用程序中打开照片(类似于Instagram的com.instagram.photo).然后我想com.photoapp.exclusive只能在我的应用程序中打开(类似于com.instagram.exclusivegram).

我在设备上遇到的是即使使用com.photoapp.exclusive,UIDocumentController也会提示我在PhotoApp或DropBox中打开它,它应该只是PhotoApp.

我有我的应用程序注册UTI以及我用来检查开放能力的示例应用程序.我在示例应用程序中使用的代码如下:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"photoapp://"]]) {
        NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"derp.png"], 1.0);
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"photoapp.pae"];
        [imageData writeToFile:fullPathToFile atomically:NO];

        interactionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"file://%@", fullPathToFile]]];
        interactionController.UTI = @"com.photoapp.exclusive";
        interactionController.delegate = self;

        [interactionController presentOpenInMenuFromRect:self.view.frame inView:self.view animated:YES];
    }
Run Code Online (Sandbox Code Playgroud)

以下是我的app文件中的plist文件:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeDescription</key>
        <string>Exclusive PhotoApp Photo</string>
        <key>UTTypeConformsTo</key>
        <array>
            <string>com.photoapp.photo</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.photoapp.exclusive</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>pae</string>
        </dict>
    </dict>
    <dict>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>pa</string>
        </dict>
        <key>UTTypeIdentifier</key>
        <string>com.photoapp.photo</string>
        <key>UTTypeDescription</key>
        <string>PhotoApp …
Run Code Online (Sandbox Code Playgroud)

iphone uti ios uidocumentinteraction instagram

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

Google YouTube API刷新令牌未被发送

我正在尝试使用基于Google文档的Google YouTube数据API和PHP:https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Refreshing_a_Token.在使用OAuth进行身份验证时,我的问题就出现了.我正在使用以下授权URL,该URL与文档所说的相同,除了我的重定向uri和应用程序密钥,显然.

$this->authorizationUrl = 'https://accounts.google.com/o/oauth2/auth?';
$this->authorizationUrl .= 'client_id=' . $this->applicationKey . '&';
$this->authorizationUrl .= 'redirect_uri=' . $this->redirect_uri . '/account.php?action=youtube_oauth&';
$this->authorizationUrl .= 'scope=https://gdata.youtube.com&';
$this->authorizationUrl .= 'response_type=code&';
$this->authorizationUrl .= 'access_type=offline';
Run Code Online (Sandbox Code Playgroud)

然后,正如文档所说,我提出以下内容:

$curl_options = Array(
            CURLOPT_POSTFIELDS => Array(
                'code' => $code,
                'client_id' => $this->applicationKey,
                'client_secret' => $this->applicationSecret,
                'redirect_uri' => $this->redirect_uri . '/account.php?action=youtube_oauth',
                'grant_type' => 'authorization_code'
            ),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_URL => 'https://accounts.google.com/o/oauth2/token'
        );
Run Code Online (Sandbox Code Playgroud)

但是,我的回复从来没有像我们的文档所说的那样给我一个refresh_token.我只得到其他三个响应项.

像这样的一些问题:获取刷新令牌google api已经说过使用approval_prompt = force,但这也不起作用,完全违背了access_type = offline的目的.

有关为什么我会得到4个响应项中的3个的有效回复的任何想法?

php youtube google-api youtube-api oauth-2.0

7
推荐指数
2
解决办法
5634
查看次数

以编程方式在UIViewController中添加UINavigationController

我目前有一个视图设置如下:

@interface BlogViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
    UITableView *mainTableView;
}

@property (nonatomic, retain) UITableView *mainTableView;
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它内部有一个UITableView,我将所有数据加载到.但是,当我调用以下函数时:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    SingleBlogViewController *viewController = [[SingleBlogViewController alloc] init];
    [self.navigationController pushViewController:viewController animated:YES];
    //[self presentModalViewController:viewController animated:YES];
    [viewController release];
}
Run Code Online (Sandbox Code Playgroud)

什么都没发生.出于某种原因,我的UITableView内心UIViewController并没有推动观点.这是因为它不是UITableViewController吗?我尝试将其更改为,但仍然无法正常工作.

我在这里错过了什么吗?

uitableview uinavigationcontroller pushviewcontroller ios4 ios

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

Access-Control-Allow-Origin 不允许 Yelp API 来源 http://localhost:8888

使用以下代码,我使用 Chrome 的 JavaScript 开发者控制台在该问题的标题中收到错误:

    jQuery.getJSON("http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX",
 function(data){
  jQuery.each(data, function(i,businesses){   
   jQuery("#yelpPreview").append(businesses.url);
   if ( i == (amount - 1) ) return false;
  });
 });
Run Code Online (Sandbox Code Playgroud)

完整的错误是: XMLHttpRequest 无法加载http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX。Access-Control-Allow-Origin 不允许来源http://localhost:8888 。

我使用 MAMP 作为我的本地主机。

这是 Yelp 阻止 API 访问本地主机的问题,还是我的代码中有错误?

api access-control getjson

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