我需要在Objective-C中创建一个可变的二维数组.
例如,我有:
NSMutableArray *sections;
NSMutableArray *rows;
Run Code Online (Sandbox Code Playgroud)
每个项目都sections包含一个数组rows.rows是一个包含对象的数组.
我想做这样的事情:
[ sections[i] addObject: objectToAdd]; //I want to add a new row
Run Code Online (Sandbox Code Playgroud)
顺序如下:第0节,行:obj1,obj2,obj3第1节,行:obj4,obj5,obj6,obj 7 ...
有没有办法在Objective-C中做到这一点?
cocoa cocoa-touch objective-c multidimensional-array nsmutablearray
我们有一个基于Cordova的iOS应用程序,它不使用推送通知.截至Cordova 3.5.0,我们对应用程序商店进行的每次提交都会生成一封电子邮件,通知我们我们的应用程序包含用于向Apple的推送通知服务注册的API,但没有推送通知权利.
该应用程序每次都被接受,因为我们实际上并没有使用推送通知.但是,如果Apple决定更改其关于这些API引用是否可接受的策略,我希望避免触发此警告.
我们没有遇到过早期版本的Cordova的问题,也没有在Objective-C中做过任何工作.这是Cordova 3.5的已知问题吗?搜索已经产生了一些类似问题的人,但我只找到了想要添加推送权利的人的解决方案,(而不是弄清楚Push API的引用位置并将其删除).我看了看Cordova问题ML,但没有找到任何东西.人们都知道的任何其他线索将不胜感激!
使用的插件:
org.apache.cordova.console
org.apache.cordova.device
org.apache.cordova.file
org.apache.cordova.inappbrowser
org.apache.cordova.media
org.apache.cordova.network-information
org.apache .cordova.splashscreen
相关的电子邮件摘要,特定信息已替换为[]:
来自:iTunes Store
日期:2014年9月17日星期三下午3:49
主题:iTunes Connect:您的应用"[appName]"(Apple ID:[id])有一个或多个问题
致:[开发人员]亲爱的开发者,
我们发现您最近为"[app]"投放了一个或多个问题.您的投放成功,但您可能希望在下次投放时更正以下问题:
缺少推送通知权利 - 您的应用似乎包含用于向Apple推送通知服务注册的API,但应用签名的权利不包括"aps-environment"权利.如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含"aps-environment"权利的配置配置文件对应用进行签名后重新提交.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.
纠正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect.
问候,
App Store团队
我试图编译,但每次我做,一个方法抛出一个奇怪的"预期的类型"错误.我在标题中有一个方法:
-(ANObject *)generateSomethingForSomethingElse:(NSString *)somethingElse;
Run Code Online (Sandbox Code Playgroud)
该方法的返回类型的错误点.我已经导入ANObject到标题使用#import "ANObject.h"并ANObject正在编译精细..
为什么会这样?
我有一个NSMutableArray存储用于Box2d物理模拟的鼠标接口.当使用多个手指播放时,我会得到例外陈述
NSArray在被枚举时发生了变异
我知道这是因为我正在从数组中删除对象,同时也通过它枚举,使枚举无效.
我想知道的是,解决这个问题的最佳策略是什么?我在网上看到了一些解决方案:@synchronized在枚举或将触摸关节放入垃圾数组之前复制数组以便以后删除(我不确定是否可行,因为我需要在移除后直接从数组中删除鼠标点它来自世界).
这是一个有用的例程,当您想知道正在创建的内容以及它的位置时,您可以在iOS应用程序中使用该例程来遍历视图层次结构.
此例程将视图层次结构转储到NSLog()从传入的视图开始.子视图在子视图数组中显示它们的索引,所有超类按顺序用冒号分隔,最后是帧大小.
要转储应用程序的整个视图层次结构,请调用以下方法:
dumpViews([[UIApplication sharedApplication] keyWindow], @"", @"");
Run Code Online (Sandbox Code Playgroud)
要显示摄像机视图的层次结构,请在控制器中覆盖此方法: navigationController:willShowViewController:viewController:animated:
并像这样调用转储例程:
dumpViews(self.modalViewController.view, @"", @"");
Run Code Online (Sandbox Code Playgroud)
对于所有其他观点:
dumpViews(myView, @"", @"");
Run Code Online (Sandbox Code Playgroud)
void dumpViews(UIView* view, NSString *text, NSString *indent)
{
Class cl = [view class];
NSString *classDescription = [cl description];
while ([cl superclass])
{
cl = [cl superclass];
classDescription = [classDescription stringByAppendingFormat:@":%@", [cl description]];
}
if ([text compare:@""] == NSOrderedSame)
NSLog(@"%@ %@", classDescription, NSStringFromCGRect(view.frame));
else
NSLog(@"%@ %@ %@", text, classDescription, NSStringFromCGRect(view.frame));
for (NSUInteger i = 0; i < [view.subviews count]; i++) …Run Code Online (Sandbox Code Playgroud) 我有一个NSMutableDictionary整数值,我想获得一个键的数组,按其各自的值升序排序.例如,使用这个字典:
mutableDict = {
"A" = 2,
"B" = 4,
"C" = 3,
"D" = 1,
}
Run Code Online (Sandbox Code Playgroud)
我想最终得到阵列["D", "A", "C", "B"].当然,我真正的字典比四个项目大得多.
我不太明白这个方法convertPoint:toView:.
在Apple的文档中写道
convertPoint:toView:将点从接收器的坐标系转换为指定视图的点.
Run Code Online (Sandbox Code Playgroud)- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
但是将一个点从一个点转换到另一个点究竟意味着什么?
这是否意味着两个边界中的点都有不同的单位?或者只是不同的价值?
如果是后者,为什么我们可以简单地将a的值赋给contentOffsetb?
CGPoint a = [a contentOffset];
[b setContentOffset:a];
Run Code Online (Sandbox Code Playgroud)
如何convertPoint:toView:从简单的分配不同contentOffset?还是我误解了整个概念?什么是转换点实际上做?应该何时使用此方法?
如何在swift中的某个字符前获取字符串?下面的代码是我在Objective C中的表现,但似乎无法在Swift中执行相同的任务.有关如何实现这一目标的任何提示或建议?rangeOfString似乎在swift中根本不起作用(尽管Swift一直在为我做准备).
NSRange range = [time rangeOfString:@" "];
NSString *startDate =
[time substringToIndex:range.location];
Run Code Online (Sandbox Code Playgroud)
从上面的代码中可以看出,我能够在Objective C中的空格字符之前获取字符串.
编辑:如果我尝试这样的事情
var string = "hello Swift"
var range : NSRange = string.rangeOfString("Swift")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
无法将表达式的类型'NSString'转换为''(String,options:NSStringCompareOptions,range:Range?,locale:NSLocale?)'
不确定我做错了什么或如何正确解决它.
我正在尝试在Python中创建无限循环的各种方法(除了通常之外while True),并提出了这个想法:
x = {0: None}
for i in x:
del x[i]
x[i+1] = None # Value doesn't matter, so I set it to None
print(i)
Run Code Online (Sandbox Code Playgroud)
在纸面上,我找到了无限循环的方式:
+ 1将是具有None更新字典的值的新键.在我看来,这应该以一种无限循环的方式输出自然数:
0
1
2
3
4
5
.
.
.
Run Code Online (Sandbox Code Playgroud)
我认为这个想法很聪明,但是当我在Python 3.6上运行时,它会输出:
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
是的,它在5次迭代后以某种方式停止了.显然,循环的代码块中没有基本条件或标记值,那么为什么Python只运行此代码5次?
cocoa-touch ×5
ios ×5
objective-c ×5
cocoa ×3
android ×1
collections ×1
compilation ×1
cordova ×1
debugging ×1
dictionary ×1
geometry ×1
nsdata ×1
nsdictionary ×1
nsstring ×1
python ×1
swift ×1
uiview ×1
xcode ×1