小编Ela*_*hts的帖子

将照片保存到iPhone相册库中的自定义相册

我正在尝试在iPhone的照片库中创建自定义相册,然后保存我用相机拍摄的照片,或从手机相机胶卷中选择到该自定义相册的照片.我可以成功创建相册,但照片没有保存在那里,而是他们被保存到模拟器保存的照片专辑...我不知道如何告诉UIImageWriteToSavedPhotosAlbum保存到我刚创建的新专辑addAssetsGroupAlbumWithName. ..

这是我到目前为止的代码 - 我已经删除了几个部分以保持我的代码示例简短...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{     
  NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
  if([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage])
  {        
    // pull GPS information from photos metadata using ALAssetsLibrary
    void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
    {
        // code snipped out 
    };
    NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library assetForURL:assetURL
             resultBlock:ALAssetsLibraryAssetForURLResultBlock
            failureBlock:^(NSError *error) 
            {
                // code snipped out
            }];

    // getimage from imagePicker and resize it to the max size of …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimagepickercontroller uiimage alassetslibrary

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

使用dispatch_async或performSelectorOnMainThread在主线程上执行UI更改?

可能重复:
Grand Central Dispatch(GCD)与performSelector - 需要更好的解释

要在主线程上执行"stuff",我应该使用dispatch_async还是performSelectorOnMainThread?是否有首选方式,正确/错误和/或最佳做法?

示例:我在NSURLConnection sendAsynchronousRequest:urlRequest方法块中执行某些逻辑.因为我正在做主要视图的东西,比如呈现UIAlertView我需要UIAlertView在主线程上显示.为此,我使用以下代码.

[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

    // code snipped out to keep this question short

    if(![NSThread isMainThread]) 
    {
        dispatch_async(dispatch_get_main_queue(), ^{
                    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Some Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [alertView show];
        });
    }
}];
Run Code Online (Sandbox Code Playgroud)

在同一个if(![NSThread isMainThread])声明中,我也称之为一些自定义方法.问题是,我应该dispatch_async使用上面使用的方法还是更好地使用performSelectorOnMainThread?例如,下面的完整代码:

[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

    // code snipped …
Run Code Online (Sandbox Code Playgroud)

asynchronous objective-c nsthread grand-central-dispatch ios

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

如何使用Storyboard创建一个非常长的静态TableView?

我需要创建一个非常长的静态TableViewController.

静态表有大约5组,每组有几个单元,2-7取决于组.

当界面构建器仅允许您查看实际屏幕大小时,如何实现此目的?

在IB中有没有办法在tableview内滚动?或者可能拉长屏幕,以便我可以同时看到所有组和单元格?我的意思是,IB的重点在于视觉设计你的屏幕,但你如何设计一个多页长的屏幕呢?

uitableview xcode4 ios5

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

使用相机拍摄的照片不包含任何ALAsset元数据

最奇怪的事情正在发生.我有一个操作表,让用户可以选择用相机拍照或从相机胶卷中选择一个.在UIImagePicker从选择返回后,我使用ALAssetsLibrary来确定嵌入在照片中的GPS信息.从相机胶卷中选择照片效果很好,我可以检索GPS信息.但是,用相机拍照绝对没有提供GPS信息,实际上我根本没有元数据.有谁知道我在这里做错了什么?

代码如下:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{    
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    if([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage])
    {        
        void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
        {
            // get images metadata
            NSDictionary *metadata = asset.defaultRepresentation.metadata;
            NSLog(@"Image Meta Data: %@",metadata);

            // get coords 
            CLLocation *location = [asset valueForProperty:ALAssetPropertyLocation];
            NSLog(@"coordLat: %f , coordLon: %f", location.coordinate.latitude, location.coordinate.longitude);

            // do more here - rest of code snipped to keep this question short

    };
    NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library assetForURL:assetURL …
Run Code Online (Sandbox Code Playgroud)

iphone gps objective-c uiimagepickercontroller alassetslibrary

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

我应该在Objective-C中使用ivars吗?

我有一个我正在编写的应用程序,仅使用@properties.我的任何课程档案中​​都没有宣布任何一个ivar.据我所知,随着@property的推出,不再需要ivars了.我是按照最佳做法编码的吗?从长远来看,这最终会在众所周知的屁股中咬我吗?我一直在阅读关于"正确"和"错误"的评论......

properties objective-c ios ivar

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

从TableViewController中的performSegueWithIdentifier到NavController中嵌入的第二个TVC无法正常工作

我有两个TableViewControllers,中间有一个segue.当用户点击第一个TVC中的小区时,他们将看到第二个TVC.segue是模态的,有一个名为"segueToLocationDetails"的标识符,并传递一个对象.您或多或少可以将第二个TVC视为"详细信息"页面.

我的代码在我上面描述的场景中完美运行.然而,只要我将第二个TVC嵌入导航控制器,它就会中断.

例.我有完美的工作.然后我突出显示IB中的第二个TVC,将鼠标移到Product | 嵌入| 导航控制器.现在第二个TVC在导航控制器中.然而,segue仍然指向第二个TVC.我删除了segue并将其从第一个TVC的单元重新连接到导航控制器,并确保给segue一个标识符.再次跑,它打破了!错误低于......

2011-12-23 15:30:45.469 Project12 [5219:11603] - [UINavigationController setDetailsObject:]:无法识别的选择器发送到实例0x7b92ce0 2011-12-23 15:30:45.471 Project12 [5219:11603] *终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因是: ' - [UINavigationController的setDetailsObject:]:无法识别的选择发送到实例0x7b92ce0'*第一掷调用堆栈:(0x16ea052 0x150ad0a 0x16ebced 0x1650f00 0x1650ce2 0x3933 0x703e1e 0x36f6d9 0x36f952 0xbf786d 0x16be966 0x16be407 0x16217c0 0x1620db4 0x1620ccb 0x14ec879 0x14ec93e 0x2dfa9b 0x2a98 0x29f5 0x1)终止调用抛出异常当前语言:auto; 目前客观的c

下面的一些代码可以帮助解释:

AllLocations.h和AllLocations.m(这是主表)

AllLocations.h

@interface AllLocations : UITableViewController
{
    SQLiteDB *mySQLiteDB;
}
@property (nonatomic, strong) NSMutableArray *locationsArray;



AllLocations.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"segueToLocationDetails" sender:self];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"segueToLocationDetails"]) 
    { …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c uinavigationcontroller ios segue

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

在 .php 模板中包含 .twig 基本模板

我在网站上使用 .twig 模板,但是我需要对一些视图的逻辑进行相当巧妙的处理。我不认为 twig 可以处理这个问题,它在 PHP 中是小菜一碟。(我不打算解释那是什么的细节,只知道它在 PHP 中很容易,而且我实际上已经有了代码)。问题是,我可以在 .twig 类型的基础模板或父模板中包含一个 .PHP 模板吗?

下面的示例(不起作用) - blah.html.php 是一个扩展 base.html.twig 模板的模板......

/some/web/directory/bundlename/Resources/views/blah/blah.html.php

<?php $view->extend('::base.html.twig') ?>

<?php $view['slots']->set('title', 'Welcome to nowhere!') ?>

<?php $view['slots']->start('body') ?>

    <div id="body">
        html stuff here, blah blah blah...
        <?php .... ?>
            complex php and html stuff, and so on...
        </php end....?> 
        you get the idea...
    </div>

<?php $view['slots']->stop() ?>
Run Code Online (Sandbox Code Playgroud)

在浏览器上,上面的代码将基本模板中的所有 .twig 代码呈现为浏览器中的文本(即模板引擎不会执行它)。

PS - 是的,我在 app/config/config.yml 中设置了 .twig 和 .php

templating:      { engines: ['twig', 'php'] }
Run Code Online (Sandbox Code Playgroud)

好的,这里是“复杂”内容的详细信息......这取自用 Symfony …

php symfony twig

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

查询生成器/ DQL无法使用INNER JOIN - 语法问题

我知道我有一个语法,但是我无法弄明白.我正在尝试对5个表进行SELECT和INNER JOIN,但Symfony抱怨JOIN中的实体在定义之前使用.

实际错误如下: [Semantical Error] line 0, col 121 near 'I ON C.id = ': Error: Identification Variable MySiteBundle:Items used in join path expression but was not defined before.

这是PHP代码.

注意:我已将此查询缩短为两列,两个表和一个联接,以使问题简单并显示我的观点.实际查询更长,并产生相同的错误.

$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery(
    'select C.name as CName, I.id as IId
    FROM MySiteBundle:Categories C
    INNER JOIN MySiteBundle:Items I ON C.id = I.category_id');
$result = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

更新

正如所建议的那样,我已经废除了DQL代码并使用了Query Builder代码.我得到一个非常类似的错误'Categories c': Error: Class 'Categories' is not defined.我的QB代码如下.

$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder()
        ->select('c.name, i.id, i.image, …
Run Code Online (Sandbox Code Playgroud)

doctrine inner-join dql query-builder symfony

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

回调函数中不能调用任何fineUploader方法

我已autoUpload设置为false,因为我想自己将图像上传到我的后端。但是,要做到这一点,我首先需要文件对象。在回调onSubmitted事件中,我试图将图像 id 传递给getFile方法,以返回对象。但是,当我尝试这样做时,我收到以下错误消息。

在 onSubmitted: id=0 | 名称=28603454_15219061700_r.jpg index.js:2178

[Fine Uploader 5.16.2] 在“onSubmitted”回调中捕获异常 - 无法读取 null 的属性“uploader”

我猜我得到这个是因为我在声明一个 const 对象并同时引用它,我相信你不能这样做......

那么,关于如何在callbacks函数内调用方法的任何想法?或者还有其他方法吗?

const uploader = new FineUploaderTraditional({
  options: {
    maxConnections: 1,
    autoUpload: false,
    deleteFile: { enabled: true, endpoint: "/uploads" },
    request: { endpoint: "/uploads" },
    retry: { enableAuto: true },
    callbacks: {
      onSubmitted: function(id, name) {
        console.log("in onSubmitted: id=" + id + " | name=" + name);
        // getFile(id) returns a …
Run Code Online (Sandbox Code Playgroud)

javascript callback fine-uploader reactjs

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

CloudWatch Insights 查询 - 如何从计数中获取单个计数

我有一个包含 playerId 值的日志文件,一些玩家在文件中有多个条目。我想获得唯一玩家的确切不同计数,无论他们在日志文件中是否有 1 个或多个条目。

使用下面的查询,它会扫描 497 条记录并找到 346 条唯一行(346 是我想要的数字) 查询:

fields @timestamp, @message
| sort @timestamp desc
| filter @message like /(playerId)/ 
| parse @message "\"playerId\": \"*\"" as playerId
| stats count(playerId) as CT by playerId
Run Code Online (Sandbox Code Playgroud)

497 条记录 346 行

如果我将查询更改为使用 count_distinct,我就会得到我想要的。下面的例子:

fields @timestamp, @message
| sort @timestamp desc
| filter @message like /(playerId)/ 
| parse @message "\"playerId\": \"*\"" as playerId
| stats count_distinct(playerId) as CT 
Run Code Online (Sandbox Code Playgroud)

使用 count_distinct 函数

然而,count_distinct 的问题在于,随着查询扩展到更大的时间范围/更多的记录,条目的数量会达到数千甚至数万。由于 Insights count_distinct 行为的性质,当数字变为近似值时,这会带来一个问题......

“返回字段唯一值的数量。如果该字段具有非常高的基数(包含许多唯一值),则 count_distinct 返回的值只是一个近似值。”。

文档:https : //docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

这是不可接受的,因为我需要确切的数字。稍微玩一下查询,并坚持使用 count(),而不是 count_distinct() 我相信这是答案,但是我无法得出一个数字......不起作用的例子......任何想法? …

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

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