@interface some_class : some_parent {
}
@property (nonatomic, assign) CGRect the_rect;
@end
...
@implementation some_class
@synthesize the_rect;
@end
Run Code Online (Sandbox Code Playgroud)
创建some_class的实例后:
instance_of_some_class.the_rect.origin.x = 0.0;
Run Code Online (Sandbox Code Playgroud)
这会生成"表达式无法分配"错误.
当然这很好用:
instance_of_some_class.the_rect = CGRectMake(0,0,0,0);
Run Code Online (Sandbox Code Playgroud)
我想问题是,自动神奇创建的setter只知道将CGRect分配给"the_rect".好的,我明白了.我可以告诉它不要创建一个setter,这样我就可以直接访问成员变量并对struct成员进行赋值而不必分配整个CGRect吗?
我想我可以将它分解为四个单独的CGFloats for origin.x,origin.y,size.width和size.height ...但是你会认为有一种方法可以用CGRects来做到这一点.
令人困惑的是,这当然可行:
CGRect test = instance_of_some_class.the_rect.origin.x;
Run Code Online (Sandbox Code Playgroud)
换句话说,getter知道如何导航struct并提取其中一个元素的值,以便我可以使用它.相反的情况似乎并非如此,因为你无法进入一个恰好是结构的ivar,并且无需分配整个结构就可以对其中一个元素进行赋值.
我也试过这个:
@interface some_class : some_parent {
@public
CGRect the_rect;
}
@property (nonatomic, assign) CGRect the_rect;
@end
Run Code Online (Sandbox Code Playgroud)
在另一个模块中实例化之后:
instance.the_rect->origin.x = some_value;
Run Code Online (Sandbox Code Playgroud)
...并且得到一个错误,说被引用的成员不是指针.我尝试使用instance.the_rect的地址......但这也不起作用.
EDIT TO CLARIFY:这是关于创建一个类似于结构的ivars的类.然后,在将类实例化到其他地方后,您希望能够直接对struct ivar元素进行赋值:
class_instance.struct_ivar.element = something;
Run Code Online (Sandbox Code Playgroud)
我正在使用CGRect作为一个众所周知的结构的一个方便的例子,人们可能希望将其用作ivar.
我试图理解Cassandra与节点数量线性扩展的说法.快速浏览'网络'我还没有看到很多关于这个主题的处理.当然,Cassandra中有一些串行处理元素必须限制N增加时的速度.任何关于这个主题的想法,指针或链接都将不胜感激.
编辑以提供透视图:
我正在开发一个项目,该项目具有1,000+节点Cassandra基础结构的当前请求.我没有提出这个规范.我发现自己提出将N减小到200到500之间的范围,每个节点的串行计算速度至少是其两倍.通过对服务器配置进行简单更改,可以轻松实现每个节点的成本损失.
处理需要GA的问题.在完成编译器优化之前,我已经完成了所有这些工作并花了相当多的时间来修剪脂肪并优化代码.因为GA由于用户输入而运行,所以它必须在合理的时间段内找到解决方案,否则UI会停止并且根本不会很好地运行.我得到了这个二进制GA在iPhone 3GS上解决了大约0.1秒的27变量问题.
为了达到这种性能水平,整个GA用C编码,而不是Objective-C.
为了进一步减少运行时间,我考虑了仅为求解器模块使用"-O3"优化开关的想法.我尝试了它,它将运行时间减少了近一半.
我应该通过将优化设置为"-O3"来关注任何陷阱吗?请记住,我在文件级别执行此操作,而不是整个项目.
致力于将"喜欢"按钮集成到网站中.该站点当前在本地主机模式下在XAMPP上运行.在计算机外的任何地方都看不到
在站点用户单击按钮后,我需要将事件记录到数据库中.我甚至在看到按钮之前从他们填写的表格中获取了他们的信息.
这是我的问题.我正在尝试调试执行大量此操作的代码.但是,如果我点击"喜欢"按钮,那么它之后会永远变灰.
我可以清除Firefox上的cookie并取回按钮.这也意味着我必须再次登录FB.这使得调试会话非常困难.当然有更好的方法吗?
if([MFMessageComposeViewController canSendText])
{
MFMessageComposeViewController *sms_message_vc = [[MFMessageComposeViewController alloc] init];
sms_message_vc.body = text;
sms_message_vc.recipients = recipients;
sms_message_vc.messageComposeDelegate = self;
[self presentModalViewController:sms_message_vc animated:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
[sms_message_vc release];
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时,在实际显示撰写视图之前会有几秒钟的延迟.造成这种情况的原因是什么以及如何消除延迟?
编辑1:澄清:制作sms_message_vc和ivar没有帮助,因为该...alloc] init]过程将挂起UI几秒钟,无论它在哪里.
编辑2:尝试GCD(具有不同的优先级)以尝试同时运行初始化.没有帮助:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, (unsigned long)NULL), ^(void){
sms_message_vc = [[MFMessageComposeViewController alloc] init];
sms_message_vc.messageComposeDelegate = self;
});
Run Code Online (Sandbox Code Playgroud) 某处:
if([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *email_vc = [[MFMailComposeViewController alloc] init];
email_vc.mailComposeDelegate = self;
[email_vc setSubject:subject];
[email_vc setMessageBody:message isHTML:FALSE];
[email_vc setToRecipients:recipients];
[self presentModalViewController:email_vc animated:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
[email_vc release];
}
else
...
Run Code Online (Sandbox Code Playgroud)
别的地方:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Cancelled");
break;
case MFMailComposeResultSaved:
NSLog(@"Saved");
break;
case MFMailComposeResultSent:
NSLog(@"Sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Compose result failed");
break;
default:
NSLog(@"Default: Cancelled");
break;
}
// This ugly thing is required because dismissModalViewControllerAnimated causes a crash
// if called right away when …Run Code Online (Sandbox Code Playgroud) 在 Windows 上使用 PyCharm 并希望更好地了解如何设置我的本地环境,以便它尽可能干净地转换到我在 Linode(或任何其他 Linux 机器)上的服务器。
我有一个物理驱动器用于开发工作。就我而言,这是 drive Z:。
我通常会为每个项目创建一个目录。一个项目被定义为一个完整的网站。
我目前还选择了一个目录Z:\virtualenv,用于创建我的虚拟环境。每个项目一个。我想多个项目可以共享相同的 virtualenv,但我不确定这对于开发或生产是否明智。
我已经考虑过将每个项目的 virtualenv 放在其相应项目中的想法。这对我很有吸引力,因为这样每个项目都将是整体的。例如,如果我们谈论 PyCharm 下的 Flask 应用程序:
d z:\flask_app
d .git
d .idea
d static
d templates
d virtualenv
main.py
Run Code Online (Sandbox Code Playgroud)
那么,您如何设置上述生产服务器?
假设有人使用一台机器通过虚拟主机托管多个站点,这是其中之一:
<VirtualHost *:80>
ServerAdmin you@example.com
ServerName example.com
ServerAlias example.com *.example.com
DocumentRoot /var/www/example/public_html
ErrorLog /var/www/example/logs/access.log
CustomLog /var/www/example/logs/error.log combined
<Directory /var/www/example>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我是否在全局服务器级别设置 virtualenv?我认为这是一个全球性的“是”。它不能以任何其他方式工作。我不认为。
好的,这确实意味着下的整个文件结构
z:\flask_app
Run Code Online (Sandbox Code Playgroud)
现在可以通过 FTP 进入
/var/www/example/public_html
Run Code Online (Sandbox Code Playgroud)
和网站好去吗?
我知道需要在生产机器上设置数据库服务器、数据库、表等才能匹配。我只是专注于 Python …
我试图了解即使在通过私有专用(我是唯一的用户)高安全性代理后,我们的真实IP地址是如何被发现的.
PROXY_IP = "<private proxy IP>:<port>"
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=%s" % PROXY_IP)
driver = webdriver.Chrome(executable_path=".\\driver\\chromedriver.exe",
chrome_options=options)
driver.get("http://www.stayinvisible.com/")
Run Code Online (Sandbox Code Playgroud)
该网站显示了一系列数据,它可以从您与它的交互中获取.它正确地列出了代理的IP地址,令我惊讶的是,它还将我们的DSL IP地址列为"附加IP".
这是怎么回事?我们如何防止它?
一种想法是,他们可能以一种聪明的方式使用JavaScript/Java来获取地理位置数据并将其发送回自己.我通过页面源扫描,找不到任何突出的东西(虽然我没有做详尽的审查).
编辑1:
如果我使用不同的检查网站,他们似乎不会报告我的真实IP.例如,这些中的任何一个似乎都看不到真正的IP:
driver.get("http://simplesniff.com/")
Run Code Online (Sandbox Code Playgroud)
要么
driver.get("http://analyze.privacy.net/")
Run Code Online (Sandbox Code Playgroud)
编辑2:
根据其中一条评论,我试过:
driver.get("http://myhttp.info/")
Run Code Online (Sandbox Code Playgroud)
在任何地方都没有真正IP的迹象.我很想知道stayinvisible.com代码在做什么......
编辑3:
我可能找到了答案:WebRTC
这显然会影响Windows上的Chrome.这正是我正在运行的(很好地为我服务).我终于找到了一个检查IP泄漏的网站,告诉我他们是如何获得真实地址的,我想出了这个:
driver.get("http://ipleak.net/")
Run Code Online (Sandbox Code Playgroud)
我今天没有时间,但明天我将在Windows下检查Firefox,在Ubuntu桌面和OSX下检查Chrome只是为了三重检查.
编辑4:部分解决方案
好吧,显然我不是在等待答案.
好的,我破解了第一个问题.我怀疑http://simplesniff.com/使用Flash或Java来发现真实的IP地址.原来是Flash.它就像通过chrome:// plugins和重新加载来验证它一样简单.
要在代码中禁用Flash:
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=%s" % PROXY_IP) # Tell Chrome to use a proxy
options.add_argument("--disable-bundled-ppapi-flash") # Disable internal Flash player
options.add_argument("--disable-plugins-discovery") # Disable external Flash player (by not allowing it to load)
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.现在http://simplesniff.com/无法嗅出真实的IP地址.
一个问题仍然存在:WebRTC.这可能会取消在Windows上使用Chrome,直到Google修复它.
在 Windows 下运行的 PyCharm。
Ubuntu 14.04 LTS VM 托管在 VirtualBox 下。
设置 PyCharm 以使用 Vagrant 启动所述 VM 并使用远程 Python 解释器如宣传的那样工作。然而,这也恰好是 Ubuntu 使用的解释器和包。
如何修改此设置以在 VM 上使用一个或多个 virtualenv?这个想法是每个项目很可能有完全不同的需求,它们应该通过 virtualenv 相互隔离并与系统隔离。
这是否需要使用 Apache VirtualHost 来设置单独的项目?关于为 Python 和/或 Python/Django 项目执行此操作的任何文档?
将几个JSON文件从应用程序包根目录移动到目录结构(也在应用程序包中)后,应用程序保持运行,就像文件保留在其先前位置一样.经过多次刮擦和干净的构建后,我记得必须清除iPhone模拟器才能摆脱旧位置的这些文件.
拥有在每次构建时强制重置模拟器的选项肯定会很好.清洁平板模式,如果你愿意的话.这可以以任何方式被黑客攻击吗?有任何想法吗?
这是"iPhone的游戏设计与开发"讲座.我不清楚他们在整个演示文稿中使用的Quest应用程序是否可以在任何地方下载以供学习.如果是的话,我会在哪里找到它?
简单的SQL语句:
sql = "DROP TABLE IF EXISTS %s"
cursor.execute(sql, ("user_table",))
Run Code Online (Sandbox Code Playgroud)
它失败了:
psycopg2.ProgrammingError: syntax error at or near "'user_table'"
LINE 1: DROP TABLE IF EXISTS 'user_table'
Run Code Online (Sandbox Code Playgroud)
SQL 语句中的单引号是问题所在。如果我运行它,它工作得很好:
cursor.execute("DROP TABLE IF EXISTS user_table")
Run Code Online (Sandbox Code Playgroud) iphone ×5
python ×3
pycharm ×2
cassandra ×1
facebook ×1
ios ×1
javascript ×1
linode ×1
linux ×1
messageui ×1
mfmailcomposeviewcontroller ×1
objective-c ×1
php ×1
postgresql ×1
proxy ×1
psycopg2 ×1
selenium ×1
ubuntu ×1
vagrant ×1
virtualbox ×1
virtualenv ×1
virtualhost ×1
xcode ×1