小编JSc*_*rry的帖子

警告:指定初始值设定项的方法覆盖

我以编程方式创建了几个表,并且代码已经运行了好几年.两周前我上次运行时没有发出任何警告.我已经更新到iOS 8.3,现在我为每个UITableViewController收到三个警告.

超类'-initWithStyle:'的指定初始值设定项的方法覆盖未找到.

超类'-initWithCoder的指定初始值设定项的方法覆盖:'未找到.

超类"-initWithNibName:bundle:"的指定初始值设定项的方法覆盖:未找到.

初始化表的代码对于我的所有表都是类似的:

- (instancetype)initInManagedObjectContext:(NSManagedObjectContext *)context 
                 withScoreKeeper:(ScoreKeeper *)scorer 
                    withWordList:(WordList *)wordlist {

    self = [super initWithStyle:UITableViewStyleGrouped];

    if (self) {
        _mObjContext = context;
        _scoreKeeper = scorer;
        _wordList = wordlist;
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

而.h看起来像这样:

@interface SettingsTableViewController : UITableViewController {
    UIPopoverController *popover;

}
    - (instancetype)initInManagedObjectContext:(NSManagedObjectContext *)context 
                     withScoreKeeper:(ScoreKeeper *)scorer 
                        withWordList:(WordList *)wordlist NS_DESIGNATED_INITIALIZER;
Run Code Online (Sandbox Code Playgroud)

我以为我通过调用self = [super initWithStyle:UITableViewStyleGrouped];来覆盖指定的初始化程序,但我想编译器现在有其他想法.

那么如何覆盖指定的初始化程序?

objective-c ios

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

iOS 11 UIBarButtonItem图像没有大小调整

我在这个问题中暗示了我的问题的答案,所以我认为答案是禁用我的UIToolbar视图的自动布局.

据说适用于视图的代码是

cButton.translatesAutoresizingMaskIntoConstraints = YES;
Run Code Online (Sandbox Code Playgroud)

但我不确定它是否适用于我的代码,因为UIToolbar不会从UIView继承.

我有很多小图像,我在游戏中使用不同大小,具体取决于设备和方向.当Apple推出新设备时,我决定先制作一张160x160的图像,然后在使用时调整大小,而不是拥有大量不同的图像,并添加新图像.这在iOS 4 - iOS 10中运行良好,但在iOS 11中失败.

代码非常简单:

// Get the image
NSString *pictFile = [[NSBundle mainBundle] pathForResource:@"Correct" ofType:@"png"];
UIImage *imageToDisplay = [UIImage imageWithContentsOfFile:pictFile];
UIImage *cImage  = [UIImage imageWithCGImage:imageToDisplay.CGImage scale:[UIScreen mainScreen].scale orientation:imageToDisplay.imageOrientation];

UIButton *cButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cButton setImage:cImage forState:UIControlStateNormal];
[cButton setTitle:@"c" forState:UIControlStateNormal];

//set the frame of the button to the size of the image
cButton.frame = CGRectMake(0, 0, standardButtonSize.width, standardButtonSize.height);

//create a UIBarButtonItem with the button as a custom view
c = …
Run Code Online (Sandbox Code Playgroud)

uitabbar ios ios11

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

找出哪些脚本正在调用 perl 包

如果这很明显,我不是 perl 程序员所以很抱歉。我正在使用的系统上有一个我想修改的 perl 包,但我不知道还有哪些其他程序在使用它。我可以看出至少有三个 cron 作业使用它,因为我将这些行放入文件中:

open(STDOUT, '>', "/var/log/SS_logs/packageAlert.log");
open(STDERR, '>', "/var/log/SS_logs/packageAlert.error.log");

print "\nThe program packageAlert.pm  is running on " . `date` . "\n";
Run Code Online (Sandbox Code Playgroud)

10 分钟后,我的日志中出现了三行。可能会有更多人每天或每周调用它,也可以在网页中调用它。

我用grep -R "SS::alert"搜索了包的出现所以要知道有 20 个左右的脚本和网页可能会使用这个包。

有没有我可以调用的函数来找出哪个文件调用了包?

perl

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

每天18,000次MySQL注入尝试:停止尝试

这个问题不是针对SQL注入攻击的保护.StackOverflow已经多次回答了这个问题,我已经实现了这些技术.这是关于停止尝试.

最近我的网站受到大量注射攻击.现在,我捕获它们并返回一个静态页面.

这是我的URL的样子:

/products/product.php?id=1
Run Code Online (Sandbox Code Playgroud)

这就是攻击的样子:

/products/product.php?id=-3000%27%20IN%20BOOLEAN%20MODE%29%20UNION%20ALL%20SELECT%2035%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C%27qopjq%27%7C%7C%27ijiJvkyBhO%27%7C%7C%27qhwnq%27%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35--%20
Run Code Online (Sandbox Code Playgroud)

我确信这不仅仅是一个糟糕的链接或胖指法打字,所以我不想将它们发送到概述页面.我也不想在我的网站上使用任何提供静态页面的资源.

我正在考虑让页面死掉die().这种方法有什么问题吗?或者是否有我可以使用PHP设置的HTML返回代码更合适?

编辑:

基于以下几条评论,我查找了如何返回"找不到页面".icktoofay的Stack Overflow 回答建议使用404然后使用die(); - 机器人认为没有页面甚至可能会消失,并且没有更多的资源用于显示页面未找到的消息.

header("HTTP/1.0 404 Not Found");
die();
Run Code Online (Sandbox Code Playgroud)

php mysql security

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

什么时候可以调用UIEdgeInsets safeAreaInsets?

我需要为iPhone X调整我的视图,但我无法弄清楚何时初始化safeAreaInsets.根据文件,

如果视图当前未安装在视图层次结构中,或者在屏幕上尚未显示,则此属性中的边缘插入为0.

我认为当调用viewDidLoad时,将设置值,但事实并非如此.我可以在调用viewDidLayoutSubviews时获取值,但这似乎为时已晚并且无论如何都不会返回正确的值.

任何人都可以向我解释如何使用safeAreaInsets属性吗?

iphone objective-c ios

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

如何在没有主页按钮的情况下识别iPad?

我需要在没有主页按钮的设备上运行游戏时调整区域.

我可以通过它们的尺寸识别所有iDevices,但新的iPad 12.9"尺寸与旧尺寸相同.

这段代码有效,但我正在寻找一些不依赖于名称的未来证据.有什么想法吗?

if ( [ [[UIDevice currentDevice] name] isEqualToString: @"iPad Pro (12.9-inch) (3rd generation)" ] ) {
    device = LFDeviceTypePadPro12_9;
}
Run Code Online (Sandbox Code Playgroud)

objective-c ipad ios

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

Objective-C有像php的include_once调用吗?

我已经浏览了几次斯坦福iOS课程,并了解他们使用的所有示例.我已经从Apple网站上阅读了很多文档和十几个例子,但是我错过了重用代码的策略 - 这应该是面向对象语言的一个特性.

我有一大堆代码可以在屏幕上放置录制按钮和播放按钮.与按钮关联的代码仅用于显示.选择器处于开启按钮可处理录制,存储和播放.我想在屏幕上有三组这些按钮.在PHP中,我只将50行代码放在一个包含文件中,在javascript中我可能会编写一个函数来显示它们.在对象世界中,我不知道最好的方法是什么.

我会使用UIView类,如果是这样,我如何让视图显示在舞台上?我可以像我一样使用默认目标C类进行记分,但后来我有关于如何将按钮放到舞台上的相同问题.

感谢您的评论,但#import指令与PHP中的include_once不同.

至少有三种方法可以使用include_once.

最简单的方法是使用它在一个或多个站点的多个页面上包含文本.例如,您可能有一个hours.inc文件,其中包含办公时间和技术支持号码.然后,您可以将此文件包含在网站的联系人,支持和页面上.如果您更改小时数,则在一个文件中更改它们.

与第一次使用相关的是具有该站点的全局变量的文件.例如$ company_name ="我们的公司".$ company_phone ="800-555-1212"等

该文件将与header.inc和footer.inc一起使用.在这种用途中,它更像是某些语言所谓的宏替换.

但PHP最强大的用途是根据一些输入生成代码.在我的许多网站上,我有一个PHP包含文件,可根据产品ID生成数十个产品页面.页面本身只有几行, 我可以阅读此页面并确切知道发生了什么.我很难跟踪我的观点中发生的事情,当他们长达800行时. 这是一种非常有用的语言功能,我无法想象它不是目标C的一部分.我无法弄清楚的是如何做到这一点.我确定它涉及创建某种类的类,以保持代码重用,但我看过的所有示例都没有这样做.
require_once('set_variables.inc.php');
require_once('./header.inc');
$page = mysql_real_escape_string($_GET['p']);
if (file_exists("pages/$include_page") ) {
require_once("pages/$include_page");
} else {
require_once("pages/missing.inc");
}
require_once('./footer.inc');

所以我正在寻找的是暗示Objecive-C如何实现这个PHP功能:
$number_of_button_sets = 3;
inlcude_once('buttons');

iphone objective-c

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

如何从400中选出一个阵列?

我有一个包含420个NSA阵列文字的文件.每个阵列都有10到200个NSStrings.文件大小为988 KB.

当编译器不进行优化时,它可以构建并运行良好.但是,当我尝试制作存档时,它会挂起"分析86个文件中的86个".我怀疑是因为编译器在优化文件时遇到困难.我将文件分成两部分,它将在大约一个小时的编译后存档.

我将数组放入字典中,然后返回我想要的一个数组.我认为这就是编译器的问题.

-- 420 NSArrays ...
NSArray *foils_easy = [NSArray arrayWithObjects:a_easy, about_easy, ... you_easy, your_easy, nil];

NSArray *keys = @[@"a", @"about", ... @"you", @"your"];

NSDictionary *allFoils = [NSDictionary dictionaryWithObjects:foils_easy forKeys:keys];
return [allFoils objectForKey:target];
Run Code Online (Sandbox Code Playgroud)

我不需要字典,除了确定返回哪个数组.有没有办法构造数组名称,以便可以返回?也许像你这样的东西可以用来在屏幕上放置图像?

NSString *foregroundImageName = [NSString stringWithFormat:@"%@ForegroundL1", scene];
Run Code Online (Sandbox Code Playgroud)

我真的不想投入420'if'语句所以我希望有更好的解决方案.

nsarray ios

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

标签 统计

ios ×5

objective-c ×4

iphone ×2

ios11 ×1

ipad ×1

mysql ×1

nsarray ×1

perl ×1

php ×1

security ×1

uitabbar ×1