小编Bre*_*nan的帖子

如何将数据推送到网页客户端?

我刚刚了解了AJAX Push Engine,但它运行在Linux/Apache上,这对我来说不是一个选择.

http://www.ape-project.org/

目前使用AJAX来保持页面最新,我必须经常轮询服务器,这对于高流量站点来说并不是很好.仅在必要时将数据推送到客户端的选项是一个很好的选择,但本机JavaScript不支持套接字,AFAIK.我读到的一个技巧,但现在网站已经不复存在,就是使用Flash模块来处理套接字通信并将消息转发给JavaScript.

研究这种方法的麻烦在于,"JavaScript push"作为关键字提出了数组的推送功能,而不是我想要的上下文.

如何与服务器建立持久连接以在浏览器中进行推送通信?我是否需要Flash/ActionScript,还是有其他选项适用于所有当前活动的浏览器?(IE6/7/8,FF3,Safari,Chrome)

说到服务器,我还需要解决由于Origin策略和端口安全性引起的复杂问题.我很感激您能指出的任何可以解释可用选项的内容.

javascript ajax

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

我如何解决Objective-C中的相对路径?

我正在尝试下面的代码,看看我是否可以让它扩展这些位置的绝对路径,以便我可以将它们用于NSFileManager的操作,当我使用波浪号和相对路径时它会失败.

我正在使用Objective-C中的Xcode中的命令行应用程序.我可以从命令行运行程序,它为我扩展了路径,但是从Xcode中的目标我使用$ PROJECT_DIR和$ HOME传递命令行参数的值,以便让我在那里的一部分.问题是我需要到$ PROJECT_DIR/..这是不能解决NSFilemanager.

看起来URLByResolvingSymlinksInPath或URLByStandardizingPath并不像我期望的那样工作.我还应该做些什么吗?

BOOL isDir = TRUE;
for (NSString *path in @[@"~/", @".", @".."]) {
    NSURL *url = [[[NSURL URLWithString:path] URLByResolvingSymlinksInPath] URLByStandardizingPath];
    DebugLog(@"path: %@", url.absoluteString);
    DebugLog(@"Exists: %@", [[NSFileManager defaultManager] fileExistsAtPath:url.path isDirectory:&isDir] ? @"YES" : @"NO");
}
Run Code Online (Sandbox Code Playgroud)

更新:我使用stdlib的realpath解析路径并创建了以下方法虽然我不理解这个C函数.具体来说,我不知道解决的价值是什么,或者我将如何使用它.我确实看到了获得预期的回报值.

- (NSString *)resolvePath:(NSString *)path {
    NSString *expandedPath = [[path stringByExpandingTildeInPath] stringByStandardizingPath];
    const char *cpath = [expandedPath cStringUsingEncoding:NSUTF8StringEncoding];
    char *resolved = NULL;
    char *returnValue = realpath(cpath, resolved);

//    DebugLog(@"resolved: %s", resolved);
//    DebugLog(@"returnValue: %s", returnValue);

    return [NSString stringWithCString:returnValue encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsurl nsfilemanager

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

如何在我在命令行上设置的端口上永远启动Node.js应用程序?

我试图使用这个应该工作的命令.当启动使用Express.js的服务器时,它似乎没有传递环境变量.这是针对这个开源项目,Bus Ticker.

PORT=8081; forever start ./website/app.js

In app.jsis有这一行所以我希望我可以在该命令行上设置环境变量,如上所示.

app.set('port', process.env.PORT || process.env.npm_package_config_port || 3000);

node.js forever

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

为什么Xcode 5.1.1的项目格式从Plist到XML?

您可以看到此图像中显示的项目格式如何从Plist格式转换为Git中这些分支之间的XML,这使得文件格式加倍,这在合并分支时经常会发生冲突.似乎有些东西正在从Plist改为XML格式.这个项目确实使用CocoaPods,所以这可能是一个因素.我使用的是CocoaPods 0.33.1.

我测试了运行CocoaPods,这是在Xcode旁边修改应用程序的唯一方法,虽然我没有看到它在运行时改变项目pod install.

关于如何将项目文件从Plist格式更改为XML的任何想法?

在此输入图像描述

git xcode cocoapods xcode5.1

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

Jslint变量是否已经定义在一个单独的范围内?

使用以下代码,JsLint警告y已在第二个块中定义.我经常这样做,并且不认为它是语法错误,因为变量是在不同的块中定义的.

我是否真的应该使用不同的变量名称,即使它位于不同的块中?范围是由if语句的代码块定义还是仅作用于功能块的范围?

function x() {
  if (condition1) {
    var y = 0;
    // use y
  }
  if (condition2) {
    var y = 20;
    // use y
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript jslint

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

Core Data自定义策略的选择器语法是什么?

我正在尝试使用Core Data实现非常基本的自定义迁移.最初将单个属性创建为Integer 16值为0或1.在新模型版本中,此属性已更改为,Boolean并且下面的迁移策略应处理它.我看过几个用Swift编写的例子,它们似乎没有使可访问性公开/公开或添加@objc以使Objective-C可以访问它.我这样做是为了消除任何不起作用的原因.

我使用以下表达式为实体映射创建了映射模型和自定义策略.

FUNCTION($entityPolicy, "convertInteger:" , $source.active)

它一直失败,因为无法识别选择器.具体来说,它会收到以下错误.

unrecognized selector sent to instance

我尝试了很多变化.

  • convertInteger:
  • 转换(整数:)
  • convertInteger(_ :)

我无法获得任何变化.这个表达式的有效选择器是什么?

在Swift代码中,我在初始化程序中放置了一个断言并且它通过了,但是我不能在策略的表达式中使用相同的选择器.

import CoreData

@objc
open class IntegerToBooleanMigrationPolicy: NSEntityMigrationPolicy {

    @objc
    public override init() {
        super.init()
        assert(responds(to: #selector(convert(integer:))), "Policy does not respond to selector!")
    }

    @objc
    open func convert(integer: Int16) -> Bool {
        debugPrint("Converting \(integer) to boolean")
        return integer == 1
    }

}
Run Code Online (Sandbox Code Playgroud)

core-data ios swift swift3

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

在Objective-C中将大写字符串转换为标题大小写

我创建了以下方法,该方法首先使用NSString上的内置convertStringToTitleCase方法,但它实际上只是将每个单词的第一个字母大写.我在.NET中看到TextInfo.ToTitleCase有一种方法可以尝试我想用Objective-C做什么,但也不尽如人意.

http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx

我写的开始的方法如下.你如何正确处理大写字符串?将数据库转换为全部大写/小写有帮助吗?

- (NSString *)convertStringToTitleCase:(NSString *)str {
    NSMutableString *convertedStr = [NSMutableString stringWithString:[str capitalizedString]];

    NSRange range = NSMakeRange(0, convertedStr.length);

    // a list of words to always make lowercase could be placed here
    [convertedStr replaceOccurrencesOfString:@" De " 
                                  withString:@" de " 
                                     options:NSLiteralSearch 
                                       range:range];

    // a list of words to always make uppercase could be placed here
    [convertedStr replaceOccurrencesOfString:@" Tv " 
                                  withString:@" TV " 
                                     options:NSLiteralSearch 
                                       range:range];

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

string objective-c casing

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

解析:当我只有PFUser时,如何使用PFRelation进行查询?

这是我想要做的一个例子.我有当前用户作为PFUser和另一个名为Item的类我有一个名为"所有者"的关系,它是PFUser的关系.我想查询具有关系中当前用户的Item的所有实例.

我看到了相反查询方式的示例,但我没有看到如何获得关系,然后将其过滤到关系上的PFUser匹配.这是一个例子.

https://www.parse.com/questions/inverse-relationship-support

PFObject老师= ... //班级"老师"的PFObject PFRelation studentsRelation = [老师relationforKey:@"学生"]; PFQuery*query = studentsRelation.query; [query findObjectsInBackground:...

对于我的例子,我会这样做......

PFObject item = [PFObject objectWithClassName:@"Item"];
PFRelation relation = [parseObject relationforKey:@"owner"]; // Filter to PFUser? 
[query findObjectsInBackground:...
Run Code Online (Sandbox Code Playgroud)

我可以使用whereKey,但我该怎么用?我是否在objectId上匹配?

[query whereKey:@"objectId" equalTo:user.objectId];
Run Code Online (Sandbox Code Playgroud)

我一直收到错误102:RelatedTo运算符需要一个有效的指针.我的猜测是,因为我从一个空对象开始,它没有起点.Teacher的示例必须以填充的实例开头.我唯一拥有的是PFUser.必须有一种方法来查询Item实例并在它拥有给当前用户的"所有者"关系上对其进行过滤.我无法弄清楚,我还没有找到如何进行此查询的示例.

这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser

parse-platform pfrelation pfquery

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

Objective-C:如何将字符串附加到NSMutableString?

网址下载

http://code.google.com/p/mwiphonesdk/source/browse/#svn/trunk/iMADE/PrepTasks/08

我在上面链接的位置有代码,我使用NSMutableString在下载数据时附加字符串.但我发现使用appendString不会增加可变字符串的长度.我一定做错了什么.

当我完成后,我需要将NSMutableString转换为NSString以返回它.我已经找到了这样做的例子,但我还没有看到.

我最熟悉Java和C#,其中有一个StringBuffer/StringBuilder,它允许你附加片段,它们只是在最后调用toString来获取一个String.在Objective-C中看起来并不那么容易.

NSString* str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

#pragma mark TODO Confirm this is appending a value to the mutable string
[self.mutableString appendString:str];

NSLog(@"str length: %d, %d", [str length], [self.mutableString length]);
Run Code Online (Sandbox Code Playgroud)

上面是调用appendString的代码部分.

我看到str的长度> 0但调用appendString不会增加self.mutableString的长度.

我在这做错了什么?

objective-c

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

Objective-C中的块是否可以将nil值作为参数?

以下代码下载图像并使用块返回结果,以便我可以利用块和Grand Central Dispatch的异步功能.我发现如果图像或错误对象为零,我会收到EXC_BAD_ACCESS错误.如果参数的值为零,它总是会导致错误吗?

失败的部分是returnImage块,用于在方法结束时返回图像.

- (void)downloadImageWithBlock:(void (^)(UIImage *image, NSError *error))returnImage {
    dispatch_queue_t callerQueue = dispatch_get_current_queue();
    dispatch_queue_t downloadQueue = dispatch_queue_create("Image Downloader Queue", NULL);
    dispatch_async(downloadQueue, ^{
        UIImage *image = nil;
        NSError *error;

        // get the UIImage using imageURL (ivar)

        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"Downloading: %@", imageURL);
        });

        NSURL *url = [NSURL URLWithString:imageURL];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

        NSURLResponse *urlResponse = nil;
        NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];

        if (!error && response) {
            dispatch_async(dispatch_get_main_queue(), ^{
                NSLog(@"Success!");
            });
            image = [UIImage imageWithData:response];
        }

        // image …
Run Code Online (Sandbox Code Playgroud)

objective-c grand-central-dispatch objective-c-blocks

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

无法在 NSHomeDirectory 下创建目录

我有在 NSHomeDirectory 下创建文件夹的代码,但它总是失败,我不明白为什么。它应该可以工作,但它一直说不允许该操作。有任何想法吗?

NSURL *homeURL = [NSURL fileURLWithPath:NSHomeDirectory() isDirectory:YES];
NSURL *previewsURL = [homeURL URLByAppendingPathComponent:@"Previews"];

DebugLog(@"homeURL: %@", homeURL);
DebugLog(@"previewsURL: %@", previewsURL);

BOOL isDirectory = TRUE;
if (![[NSFileManager defaultManager] fileExistsAtPath:previewsURL.path isDirectory:&isDirectory]) {
    DebugLog(@"isDirectory: %@", isDirectory ? @"YES" : @"NO");
    NSAssert(isDirectory, @"Must be a directory");

    NSError *error = nil;
    if (![[NSFileManager defaultManager] createDirectoryAtPath:previewsURL.path withIntermediateDirectories:TRUE attributes:nil error:&error]) {
        DebugLog(@"Error: %@", error); // WHY?!
    }
    else {
        BOOL isDirectory = TRUE;
        BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:previewsURL.path isDirectory:&isDirectory];
        NSAssert(exists, @"Directory must exist");
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsfilemanager ios

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

为什么我无法使用NSUserDefaults保存对应用程序设置的更改?

我使用以下代码从设置视图中保存值,该视图从UITextField获取值并使用NSUserDefaults存储它们.下面的代码甚至调用同步,但它没有保存更改.我在这做错了什么?

- (IBAction)save {
    NSLog(@"save");

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if (self.usernameTextField.text != nil) {
        NSLog(@"username: %@", self.usernameTextField.text);
        [defaults setObject:kTwitterUsernameKey forKey:self.usernameTextField.text];
    }
    if (self.passwordTextField.text != nil) {
        NSLog(@"password: %@", self.passwordTextField.text);
        [defaults setObject:kTwitterPasswordKey forKey:self.passwordTextField.text];
    }

    [defaults synchronize];

    [self dismissModalViewControllerAnimated:TRUE];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsuserdefaults

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

为什么Xcode 5.1仍假设为真?

当我按下大写字母时键入TRUE或FALSE,它仍然假设我想要小写为真或假.在使用Objective-C时,我相信我们应该使用大写版本,即使它们当前是等效的,但是Xcode不断将其更改为true或false的事实让我第二次猜测.

任何人都知道我们现在可以使用真假吗?

objective-c xcode5

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