我在故事板上有一个视图,它有一个按钮来执行某个动作.但是,要执行此操作,用户必须登录.按钮处理程序将测试用户是否已登录并在是(YES)时执行一个segue,如果为NO则执行另一个segue.NO segues推送到登录视图控制器.还有另一个segue连接回第一个视图控制器,因此如果登录成功,用户可以从中断的地方继续.视图控制器嵌入在导航控制器中.
问题是,'return'segue正在加载视图控制器的一个全新实例,而不是引用原始实例,因此我最终得到了空接口元素和内存中该视图控制器的2个副本.
如何返回视图控制器的原始实例?
在搞乱iOS应用程序之后,我想我会给一个Cocoa应用程序一个旋转假设事情会非常相似.所以我有一个单独的窗口应用程序,有一个拆分视图和一些NSTableViews(想想iTunes),我正在寻找一个放置我的代码的地方,这些代码将从网络中获取数据以填充表格.
在iOS中,我将它放在viewDidLoad适当的UIViewController子类的方法中.然后,UITableViewDataSource将访问此数据以填充其单元格.
现在我有一个NSWindow我可以做类似的事情,但我该怎么做NSWindowController呢?这甚至是我想要的吗?我可以把它放进去,AppDelegate但似乎不对.
$body = 'This is a test';
$subject = 'Confirmation';
$headers = 'From: Testing Site' . "\r\n";
$headers .= 'Reply-To: admin@myserver.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html;charset=iso-8859-1' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion(). "\r\n";
$headers .= 'Delivery-Date: ' . date("r") . "\r\n";
//$headers .= 'Message-Id: <20140316055950.DA8ED58A13CE@myserver.com>' . "\r\n";
mail("example@hotmail.com", $subject, $body, $headers, "-f admin@myserver.com");
mail("example@gmail.com", $subject, $body, $headers, "-f admin@myserver.com");
Run Code Online (Sandbox Code Playgroud)
电子邮件向Gmail发送正常邮件但Hotmail始终拒绝此错误:
主机mx1.hotmail.com [65.55.33.119]说:550 5.7.0(COL0-MC5-F28)消息无法发送.请确保该消息符合RFC 5322.(回复DATA命令的结尾).
邮件ID标头由服务器自动生成,但也无法手动提供.
为什么Hotmail不开心?
邮件服务器具有SPF记录,反向DNS,未列入黑名单并通过mxtoolbox.com上的所有检查.
这会吐出一大堆NO,但图像在那里,路径正确显示<img>.
foreach ($imageNames as $imageName)
{
$image = 'http://path/' . $imageName . '.jpg';
if (file_exists($image)) {
echo 'YES';
} else {
echo 'NO';
}
echo '<img src="' . $image . '">';
}
Run Code Online (Sandbox Code Playgroud) 我经常发现需要缓存由NSJSONSerialization磁盘创建的数据结构,-writeToFile如果有空值则失败,我需要一个在结构未知时有效的修复.这是有效的,并且允许直接变异,因为NSMutableDictionary本身的实例没有被枚举,但感觉有点hacky.
这是完全正常还是重新创建一棵新树并返回它是绝对必要的?
- (void) removeNullsFromJSONTree:(id) branch
{
if ([branch isKindOfClass:[NSMutableArray class]])
{
//Keep drilling to find the leaf dictionaries
for (id childBranch in branch)
{
[self removeNullsFromJSONTree:childBranch];
}
}
else if ([branch isKindOfClass:[NSMutableDictionary class]])
{
const id nul = [NSNull null];
const NSString *empty = @"";
for(NSString *key in [branch allKeys])
{
const id object = [branch objectForKey:key];
if(object == nul)
{
[branch setObject:empty forKey:key];
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个子类,UIViewController带有NSMutableArray一个属性,用作a的数据源UITableView.我在故事板中创建了一个类的实例.
我想用addObject:方法填充数组,但如果我尝试,数组总是返回(null).
我读过这@synthesize不会初始化数组,我可能需要覆盖-init并初始化NSMutableArray那里,但-init永远不会被调用.
这应该怎么样?
我原以为'self.data ='会保留autorelease NSMutableArray对象和它包含的NSMutableDictionary对象,但最终我在表的cellForRowAtIndexPath方法尝试访问self.data中的NSDictionaries时得到EXC_BAD_ACCESS.
@property (strong, nonatomic) NSMutableArray *data;
- (void) updateReceivedData:(NSData *) jsonData
{
NSMutableArray *fetchedData = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
self.data = [self convertDates:fetchedData withFormat:kMySQLDateTimeFormat];
[self.tableView reloadData];
}
}
- (NSMutableArray*) convertDates:(NSMutableArray *) array withFormat:(NSString *) format
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
NSMutableArray *newArray = [NSMutableArray arrayWithArray:array];
for (NSMutableDictionary *dict in newArray)
{
for (id key in dict.allKeys)
{
if ([[dict objectForKey:key] isKindOfClass:[NSString class]])
{
NSString *value = [dict objectForKey:key];
NSDate *date = [dateFormatter dateFromString:value]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用NSArray不允许空值的NSDictionaries 的writeToFile方法.我想通过循环找到它们并用空NSString的替换,但我不能让它工作.这就是我正在尝试的.
编辑:NSArrays和NSDictionaries由NSJSONSerialization创建.
for (NSMutableDictionary *mainDict in mainArray)
{
for(NSMutableDictionary *subDict in mainDict)
{
for(NSString *key in subDict)
{
id value = [subDict objectForKey:key];
if (value == [NSNull null])
{
[subDict setObject:@"" forKey:key];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这引发了一个例外. *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
但是你可以看到所有的NSDictionaries都是可变的.
这是怎么回事?有一个更好的方法吗?
编辑:将新版本移至单独的答案.
objective-c ×6
ios ×2
nsdictionary ×2
nsnull ×2
php ×2
cocoa ×1
email ×1
hotmail ×1
outlook ×1
properties ×1
recursion ×1
retain ×1
segue ×1
storyboard ×1