我有以下代码片段.
$items['A'] = "Test";
$items['B'] = "Test";
$items['C'] = "Test";
$items['D'] = "Test";
$index = 0;
foreach($items as $key => $value)
{
echo "$index is a $key containing $value\n";
$index++;
}
Run Code Online (Sandbox Code Playgroud)
预期产量:
0 is a A containing Test
1 is a B containing Test
2 is a C containing Test
3 is a D containing Test
Run Code Online (Sandbox Code Playgroud)
有没有办法省略$index变量?
我已经看到一些苹果公司的例子可以打电话,[super viewDidUnload];而另一些则没有.我读了一篇文章(几个月前,所以我不记得那个网址),说这[super viewDidUnload];是不必要的,但除此之外没有解释.
有没有明确的理由为什么或为什么不告诉超级的viewDidUnload?
并且,(如果应该这样做)在将所有属性设置为nil,之后或之前是否重要之前,我是否应该调用super ?
- (void)viewDidUnload {
// Is this necessary?
// [super viewDidUnload];
self.tableDataSource = nil;
self.titleLabel = nil;
// Is it better to call super before or after nil'ing properties?
// [super viewDidUnload];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
这是查找子字符串出现次数的可接受方式吗?可以提高效率吗?应该使用什么编码从a NSString到ac字符串?
我不是100%肯定()!=NULL在while语句中,它似乎工作正常,当没有发现任何更多的事件时,它确实打破了while循环.
- (NSUInteger)occurenceOfString:(NSString *)substring {
const char *substr = [substring cStringUsingEncoding:NSUTF8StringEncoding];
const char *selfstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
unsigned long substrlen = strlen(substr);
NSUInteger count = 0;
char * ptr;
while ((ptr = strstr(selfstr, substr)) != NULL && substr != '\0') {
count++;
substr += substrlen + *ptr;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
(这是一种类别方法,因此在自己中搜索字符串).
我有一个NSMutableArray组成的NSStrings.当我需要对它进行排序时,我使用的[array sortUsingSelector:@selector(caseInsensitiveCompare:)]是完美的.
但有时我需要通过NSStrings 的子串对数组进行排序.在这种情况下,子串被定义为NSString跟随某个标记的一部分.事实上,标记可以在每个字符串中以不同方式定位.
显然,我可以NSString分成两个对象并对它们进行排序,但这需要进行重大更改.
有没有办法使用类似于我上面描述的选择器进行排序?
我想如果没有,那么我可以通过创建一个数组的排序副本(而不是使用选择器来完成它),然后释放原始数据.
我有一个应用程序在较旧的项目中工作正常(不使用ARC,并在Xcode 4.0中使用iOS 4.2编写.
我试图将此应用程序移植到使用ARC和故事板与Xcode 4.2和iOS 5.
我已经移植了所有内容并修复了由保留,释放,解除分配等引起的所有错误.该项目现在构建良好.我还在新项目中重建了我的Core Data模型并重建了我的模型子类.
发生错误的地方是我尝试在后台线程中解析XML文件.该文件是项目的本地文件.我为执行解析的每个NSOperation类NSLog初始化器(其中有四个).我到了应用程序的那一点,当我将操作添加到队列时发生错误.
这是我在AppDelegate中启动操作的代码:
#import "AppDelegate.h"
#import "ACHPhonebook.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize managedObjectContext = __managedObjectContext;
@synthesize managedObjectModel = __managedObjectModel;
@synthesize persistentStoreCoordinator = __persistentStoreCoordinator;
@synthesize parseQueue;
@synthesize parseOpAD, parseOpEK, parseOpLR, parseOpSZ;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ACHPhonebook" inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSError *error = nil;
NSUInteger count = [self.managedObjectContext countForFetchRequest:request error:&error];
NSLog(@"total CD count = %d", count);
if(
getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
) …Run Code Online (Sandbox Code Playgroud) 如何保存自定义struct来NSUserDefaults?
struct Paging {
NSInteger currentPage;
NSInteger totalResults;
NSInteger resultsPerPage;
};
typedef struct Paging Paging;
NSUserDefaults *userInfo = [NSUserDefaults standardUserDefaults];
[userInfo setStruct:paging forKey:@"paging"];
[userInfo synchronize];
Run Code Online (Sandbox Code Playgroud)
上面的代码产生一个运行时警告:
*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value...
我重新构建了我已经运行的代码.我之前的目录结构如下:
以下是正在运行的代码段:
<?php
$pageTitle = "Citee.me";
//include view functions
include ('view/view_functions.inc');
//incldue db functions
include ('model/db_functions.inc');
doHtmlHeader($pageTitle);
doBody();
testMySQL();
doHtmlFooter();
?>
Run Code Online (Sandbox Code Playgroud)
我现在重构了以下代码:
现在我修改了我的index.php代码如下(我注释掉db函数来缩小问题范围):
<?php
$pageTitle = "Citee.me";
//include view functions
include ('/citee/web/view/view_functions.inc');
//incldue db functions
//include ('./model/db_functions.inc');
doHtmlHeader($pageTitle);
//doBody();
//testMySQL();
doHtmlFooter();
?>
Run Code Online (Sandbox Code Playgroud)
我收到错误:
PHP Warning: include(/citee/web/view/view_functions.inc): failed to open stream: No such file or directory in /Library/WebServer/Documents/citee/public/index.php on line …Run Code Online (Sandbox Code Playgroud) 当使用/ g(获得多个匹配)和括号(获得反向引用)时,我对正则表达式匹配返回的数组感到困惑.我不清楚如何获得反向引用,因为匹配数组的下标似乎是指多个匹配,而不是后引用.
例如:
string = "@abc @bcd @cde";
re2 = '@([a-z]+)';
p = new RegExp(re2,["g"]);
m = string.match(p)
for (var i in m) { alert(m[i]; }
Run Code Online (Sandbox Code Playgroud)
这是回归,"@abc", "@bcd", "@cde"
但我希望它返回"abc", "bcd", "cde"
我怎么得到后者?
我在我的iOS应用程序中展示内容,我希望用户能够投票.我没有实现复杂的"注册用户名"功能,而是希望用户能够进行upvote.
在Web开发世界中,我可以通过使用客户端的IP地址来防止重复投票.
如何制作一个简单的投票系统,允许用户只能投票一次,而不用担心重复?
我需要以这种方式操作一些URL来添加组件:
/img/david/PlayBasketball.jpg
会变成:
/img/HiRes/david/PlayBasketball.jpg
在Objective C for iPhone中,我该怎么做?
提前致谢!